Tests for FileNameService
This commit is contained in:
@@ -28,4 +28,7 @@ libraryDependencies ++= Seq(
|
||||
"io.circe" %% "circe-generic-extras" % circeVersion,
|
||||
"io.circe" %% "circe-optics" % circeVersion,
|
||||
"io.circe" %% "circe-parser" % circeVersion,
|
||||
|
||||
"org.scalatest" %% "scalatest" % "3.2.16" % Test,
|
||||
"org.scalamock" %% "scalamock" % "5.2.0" % Test
|
||||
)
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import fetch.FileNameService
|
||||
import org.scalatest.funsuite.AnyFunSuite
|
||||
|
||||
import java.time.LocalDateTime
|
||||
|
||||
class FileNameServiceSpec extends AnyFunSuite {
|
||||
|
||||
test("FileNameService.generate returns correct file names") {
|
||||
val startTime = LocalDateTime.of(2023, 5, 17, 0, 0)
|
||||
val endTime = LocalDateTime.of(2023, 5, 17, 4, 0)
|
||||
|
||||
val expectedFileNames = List(
|
||||
"20230517_0030.csv",
|
||||
"20230517_0130.csv",
|
||||
"20230517_0230.csv",
|
||||
"20230517_0330.csv",
|
||||
)
|
||||
|
||||
val actualFileNames = FileNameService.generate(startTime, endTime)
|
||||
|
||||
assert(actualFileNames == expectedFileNames)
|
||||
}
|
||||
|
||||
test("FileNameService.generateFromDate returns correct file names") {
|
||||
val date = LocalDateTime.of(2023, 5, 17, 0, 0).toLocalDate
|
||||
|
||||
val expectedFileNames = (0 to 23).toList
|
||||
.map(hour => if(hour < 10) "0"+hour else ""+hour)
|
||||
.map(str => s"20230517_${str}30.csv")
|
||||
|
||||
val actualFileNames = FileNameService.generateFromDate(date)
|
||||
|
||||
assert(actualFileNames == expectedFileNames)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package base
|
||||
|
||||
import cats.effect.IO
|
||||
import cats.effect.unsafe.IORuntime
|
||||
import org.scalatest.Succeeded
|
||||
|
||||
import scala.concurrent.Future
|
||||
import scala.concurrent.duration._
|
||||
|
||||
trait IOSuite {
|
||||
|
||||
val Timeout: FiniteDuration = 5.seconds
|
||||
|
||||
implicit val ioRuntime: IORuntime = IORuntime.global
|
||||
|
||||
def runIO[A](io: IO[A], timeout: FiniteDuration = Timeout): Future[Succeeded.type] =
|
||||
io.timeout(timeout).as(Succeeded).unsafeToFuture()
|
||||
}
|
||||
Reference in New Issue
Block a user