mirror of
https://github.com/gotson/komga.git
synced 2025-12-22 08:23:04 +01:00
parent
d35adeaebf
commit
2a262ccad1
2 changed files with 21 additions and 1 deletions
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.domain.service
|
|||
import mu.KotlinLogging
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
import org.gotson.komga.domain.model.Book
|
||||
import org.gotson.komga.domain.model.DirectoryNotFoundException
|
||||
import org.gotson.komga.domain.model.Series
|
||||
import org.gotson.komga.infrastructure.configuration.KomgaProperties
|
||||
import org.springframework.stereotype.Service
|
||||
|
|
@ -16,7 +17,6 @@ import java.nio.file.attribute.BasicFileAttributes
|
|||
import java.nio.file.attribute.FileTime
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import kotlin.io.path.isHidden
|
||||
import kotlin.streams.asSequence
|
||||
import kotlin.time.measureTime
|
||||
|
||||
|
|
@ -35,6 +35,9 @@ class FileSystemScanner(
|
|||
logger.info { "Excluded patterns: ${komgaProperties.librariesScanDirectoryExclusions}" }
|
||||
logger.info { "Force directory modified time: $forceDirectoryModifiedTime" }
|
||||
|
||||
if(!(Files.isDirectory(root) && Files.isReadable(root)))
|
||||
throw DirectoryNotFoundException("Library root is not accessible: $root")
|
||||
|
||||
lateinit var scannedSeries: Map<Series, List<Book>>
|
||||
|
||||
measureTime {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,11 @@ import com.google.common.jimfs.Configuration
|
|||
import com.google.common.jimfs.Jimfs
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.assertj.core.api.Assertions.catchThrowable
|
||||
import org.gotson.komga.domain.model.DirectoryNotFoundException
|
||||
import org.gotson.komga.infrastructure.configuration.KomgaProperties
|
||||
import org.junit.jupiter.api.Test
|
||||
import java.lang.Exception
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
|
||||
|
|
@ -17,6 +20,20 @@ class FileSystemScannerTest {
|
|||
|
||||
private val scanner = FileSystemScanner(komgaProperties)
|
||||
|
||||
@Test
|
||||
fun `given unavailable root directory when scanning then throw exception`() {
|
||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||
// given
|
||||
val root = fs.getPath("/root")
|
||||
|
||||
// when
|
||||
val thrown = catchThrowable { scanner.scanRootFolder(root) }
|
||||
|
||||
// then
|
||||
assertThat(thrown).isInstanceOf(DirectoryNotFoundException::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `given empty root directory when scanning then return empty list`() {
|
||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||
|
|
|
|||
Loading…
Reference in a new issue