Refactor save return type without Either
This commit is contained in:
@@ -4,6 +4,7 @@ import cats.effect.unsafe.implicits.global
|
||||
import org.scalatest.funsuite.AnyFunSuite
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
|
||||
import java.io.IOException
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.time.{LocalDate, LocalDateTime}
|
||||
|
||||
@@ -32,4 +33,26 @@ class DBServiceSpec extends AnyFunSuite with Matchers {
|
||||
|
||||
lines.length shouldBe 2142
|
||||
}
|
||||
|
||||
test("DBService.save should return correct result") {
|
||||
val dbService = DBService.of.unsafeRunSync()
|
||||
val fileName = "testFile.txt"
|
||||
val fileContent = "test content..."
|
||||
|
||||
dbService.save(fileName, fileContent).unsafeRunSync() shouldEqual fileName
|
||||
}
|
||||
|
||||
test("DBService.save returns error on invalid file name") {
|
||||
val dbService = DBService.of.unsafeRunSync()
|
||||
val fileName = "/invalid/file/name"
|
||||
val fileContent = "test content..."
|
||||
|
||||
val result = dbService.save(fileName, fileContent).attempt.unsafeRunSync()
|
||||
|
||||
result match {
|
||||
case Left(e) =>
|
||||
assert(e.isInstanceOf[IOException])
|
||||
case Right(_) => fail("Expected failure did not occur")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,8 +20,8 @@ class FileFetchSchedulerSpec extends AsyncWordSpec with Matchers with IOSuite {
|
||||
refScheduler <- Ref.of[IO, Option[Either[Throwable, (String, String)]]](None)
|
||||
log <- Slf4jLogger.create[IO]
|
||||
dbService = new DBService(log) {
|
||||
override def save(fileName: String, content: String): IO[Either[Throwable, String]] = {
|
||||
refDb.set(Some(fileName)).as(Right(fileName))
|
||||
override def save(fileName: String, content: String): IO[String] = {
|
||||
refDb.set(Some(fileName)).as(fileName)
|
||||
}
|
||||
}
|
||||
fileNameService = new FileNameService {
|
||||
|
||||
Reference in New Issue
Block a user