Tests for FileNameService
This commit is contained in:
@@ -28,4 +28,7 @@ libraryDependencies ++= Seq(
|
|||||||
"io.circe" %% "circe-generic-extras" % circeVersion,
|
"io.circe" %% "circe-generic-extras" % circeVersion,
|
||||||
"io.circe" %% "circe-optics" % circeVersion,
|
"io.circe" %% "circe-optics" % circeVersion,
|
||||||
"io.circe" %% "circe-parser" % 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