diff --git a/app/src/main/java/org/fairscan/app/data/ImageRepository.kt b/app/src/main/java/org/fairscan/app/data/ImageRepository.kt index fc4ab42..a5bfedf 100644 --- a/app/src/main/java/org/fairscan/app/data/ImageRepository.kt +++ b/app/src/main/java/org/fairscan/app/data/ImageRepository.kt @@ -180,6 +180,7 @@ class ImageRepository( fun delete(id: String) { File(scanDir, id).delete() + File(sourceDir, id).delete() getThumbnailFile(id).delete() pages.removeAll { it.file == id } saveMetadata() diff --git a/app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt b/app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt index 52e8aef..26accaa 100644 --- a/app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt +++ b/app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt @@ -76,9 +76,13 @@ class ImageRepositoryTest { val repo = repo() val bytes = byteArrayOf(101, 102, 103) repo.add(bytes, byteArrayOf(51), metadata1) + assertThat(jpegFiles(scanDir())).hasSize(1) + assertThat(jpegFiles(sourceDir())).hasSize(1) assertThat(repo.imageIds()).hasSize(1) repo.delete(repo.imageIds()[0]) assertThat(repo.imageIds()).isEmpty() + assertThat(jpegFiles(scanDir())).hasSize(0) + assertThat(jpegFiles(sourceDir())).hasSize(0) val repo2 = repo() assertThat(repo2.imageIds()).isEmpty() } @@ -92,19 +96,17 @@ class ImageRepositoryTest { @Test fun `should find existing files at initialization with no json`() { - val scanDir = File(getFilesDir(), SCAN_DIR_NAME) - scanDir.mkdirs() - File(scanDir, "1.jpg").writeBytes(byteArrayOf(101, 102, 103)) + scanDir().mkdirs() + File(scanDir(), "1.jpg").writeBytes(byteArrayOf(101, 102, 103)) assertThat(repo().imageIds()).containsExactly("1.jpg") } @Test fun `should filter pages in json at initialization`() { - val scanDir = File(getFilesDir(), SCAN_DIR_NAME) - scanDir.mkdirs() + scanDir().mkdirs() val json = """{"pages":[{"file":"1.jpg"}, {"file":"2.jpg"}]}""" - File(scanDir, "document.json").writeText(json) - File(scanDir, "2.jpg").writeBytes(byteArrayOf(101, 102, 103)) + File(scanDir(), "document.json").writeText(json) + File(scanDir(), "2.jpg").writeBytes(byteArrayOf(101, 102, 103)) assertThat(repo().imageIds()).containsExactly("2.jpg") } @@ -123,12 +125,9 @@ class ImageRepositoryTest { assertThat(repo1.imageIds()).isNotEmpty() repo1.clear() assertThat(repo1.imageIds()).isEmpty() - assertThat(File(getFilesDir(), SCAN_DIR_NAME) - .listFiles { f -> f.name.endsWith(".jpg") }) - .isEmpty() - assertThat(File(getFilesDir(), THUMBNAIL_DIR_NAME) - .listFiles { f -> f.name.endsWith(".jpg") }) - .isEmpty() + assertThat(jpegFiles(scanDir())).isEmpty() + assertThat(jpegFiles(sourceDir())).isEmpty() + assertThat(jpegFiles(File(getFilesDir(), THUMBNAIL_DIR_NAME))).isEmpty() val repo2 = repo() assertThat(repo2.imageIds()).isEmpty() } @@ -189,4 +188,10 @@ class ImageRepositoryTest { assertThat(metadata!!.isColored).isEqualTo(isColored) } } + + private fun scanDir(): File = File(getFilesDir(), SCAN_DIR_NAME) + private fun sourceDir(): File = File(getFilesDir(), SOURCE_DIR_NAME) + + private fun jpegFiles(dir: File): Array? + = dir.listFiles { f -> f.name.endsWith(".jpg") } }