aboutsummaryrefslogtreecommitdiff
path: root/jvm/src/test/scala/xyz/driver/core/DateTest.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2018-06-29 15:26:09 -0700
committerJakob Odersky <jakob@driver.xyz>2018-06-29 15:26:09 -0700
commit901b02274fdfc08030443aac2f1760fc479b3816 (patch)
tree5d5f6d6d58fc9caa22eb836ccf70936a5b45ab81 /jvm/src/test/scala/xyz/driver/core/DateTest.scala
parent981cc63b94c6df5fc8f4d2f6ebafd1a6f27d7c4e (diff)
downloaddriver-core-901b02274fdfc08030443aac2f1760fc479b3816.tar.gz
driver-core-901b02274fdfc08030443aac2f1760fc479b3816.tar.bz2
driver-core-901b02274fdfc08030443aac2f1760fc479b3816.zip
Add build support for ScalaJS
Diffstat (limited to 'jvm/src/test/scala/xyz/driver/core/DateTest.scala')
-rw-r--r--jvm/src/test/scala/xyz/driver/core/DateTest.scala53
1 files changed, 53 insertions, 0 deletions
diff --git a/jvm/src/test/scala/xyz/driver/core/DateTest.scala b/jvm/src/test/scala/xyz/driver/core/DateTest.scala
new file mode 100644
index 0000000..0432040
--- /dev/null
+++ b/jvm/src/test/scala/xyz/driver/core/DateTest.scala
@@ -0,0 +1,53 @@
+package xyz.driver.core
+
+import org.scalacheck.{Arbitrary, Gen}
+import org.scalatest.prop.Checkers
+import org.scalatest.{FlatSpec, Matchers}
+import xyz.driver.core.date.Date
+
+class DateTest extends FlatSpec with Matchers with Checkers {
+ val dateGenerator = for {
+ year <- Gen.choose(0, 3000)
+ month <- Gen.choose(0, 11)
+ day <- Gen.choose(1, 31)
+ } yield Date(year, date.Month(month), day)
+ implicit val arbitraryDate = Arbitrary[Date](dateGenerator)
+
+ "Date" should "correctly convert to and from String" in {
+
+ import xyz.driver.core.generators.nextDate
+ import date._
+
+ for (date <- 1 to 100 map (_ => nextDate())) {
+ Some(date) should be(Date.fromString(date.toString))
+ }
+ }
+
+ it should "have ordering defined correctly" in {
+ Seq(
+ Date.fromString("2013-05-10"),
+ Date.fromString("2020-02-15"),
+ Date.fromString("2017-03-05"),
+ Date.fromString("2013-05-12")).sorted should
+ contain theSameElementsInOrderAs Seq(
+ Date.fromString("2013-05-10"),
+ Date.fromString("2013-05-12"),
+ Date.fromString("2017-03-05"),
+ Date.fromString("2020-02-15"))
+
+ check { dates: List[Date] =>
+ dates.sorted.sliding(2).filter(_.size == 2).forall {
+ case Seq(a, b) =>
+ if (a.year == b.year) {
+ if (a.month == b.month) {
+ a.day <= b.day
+ } else {
+ a.month < b.month
+ }
+ } else {
+ a.year < b.year
+ }
+ }
+ }
+ }
+}