diff --git a/src/test/scala/fetch/FileFetchSchedulerSpec.scala b/src/test/scala/fetch/FileFetchSchedulerSpec.scala index 7b59e5c..7c11224 100644 --- a/src/test/scala/fetch/FileFetchSchedulerSpec.scala +++ b/src/test/scala/fetch/FileFetchSchedulerSpec.scala @@ -18,43 +18,37 @@ class FileFetchSchedulerSpec extends AsyncWordSpec with Matchers with IOSuite { refDb <- Ref.of[IO, Option[String]](None) refFetch <- Ref.of[IO, Option[(String, String)]](None) refScheduler <- Ref.of[IO, Option[Either[Throwable, (String, String)]]](None) - services = Slf4jLogger.create[IO].flatMap { log => - val dbService = new DBService(log) { - override def save(fileName: String, content: String): IO[Either[Throwable, String]] = { - refDb.set(Some(fileName)).as(Right(fileName)) - } - } - val fileNameService = new FileNameService { - override def generateCurrentHour(implicit clock: Clock[IO]): IO[String] = IO.pure("file_test") - } - val fetchService = new FetchService(fileNameService, log) { - override def fetchSingleFile(fileName: String): IO[Either[Throwable, (String, String)]] = { - refFetch.set(Some((fileName, "content"))).as(Right((fileName, "content"))) - } - } - val scheduler = new Scheduler(log) { - override def scheduleTask(task: IO[Either[Throwable, (String, String)]]): Stream[IO, Either[Throwable, (String, String)]] = { - Stream.eval(task).flatMap { result => - Stream.eval(refScheduler.set(Some(result))).as(result) - } + 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)) + } + } + fileNameService = new FileNameService { + override def generateCurrentHour(implicit clock: Clock[IO]): IO[String] = IO.pure("file_test") + } + fetchService = new FetchService(fileNameService, log) { + override def fetchSingleFile(fileName: String): IO[Either[Throwable, (String, String)]] = { + refFetch.set(Some((fileName, "content"))).as(Right((fileName, "content"))) + } + } + scheduler = new Scheduler(log) { + override def scheduleTask(task: IO[Either[Throwable, (String, String)]]): Stream[IO, Either[Throwable, (String, String)]] = { + Stream.eval(task).flatMap { result => + Stream.eval(refScheduler.set(Some(result))).as(result) } } + } - IO((dbService, fetchService, fileNameService, scheduler, log)) - } - res <- services.flatMap { case (dbService, fetchService, fileNameService, scheduler, log) => { - new FileFetchScheduler(dbService, fetchService, fileNameService, scheduler, log) - .run.compile.drain *> - (refDb.get, refFetch.get, refScheduler.get).tupled.map { case (db, fetch, scheduler) => - db shouldBe Some("file_test") - fetch shouldBe Some(("file_test", "content")) - scheduler shouldBe Some(Right(("file_test", "content"))) - } + res = new FileFetchScheduler(dbService, fetchService, fileNameService, scheduler, log) + .run.compile.drain *> + (refDb.get, refFetch.get, refScheduler.get).tupled.map { case (db, fetch, scheduler) => + db shouldBe Some("file_test") + fetch shouldBe Some(("file_test", "content")) + scheduler shouldBe Some(Right(("file_test", "content"))) } - } } yield res } } } -