aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/xyz/driver/core/database/DatabaseTest.scala
blob: a5c65eaa27d8b974b380bed8ab4835a4dc77e2d9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package xyz.driver.core.database

import org.scalatest.{FlatSpec, Matchers}
import org.scalatest.prop.Checkers
import xyz.driver.core.rest.errors.DatabaseException

class DatabaseTest extends FlatSpec with Matchers with Checkers {
  import xyz.driver.core.generators._
  "Date SQL converter" should "correctly convert back and forth to SQL dates" in {
    for (date <- 1 to 100 map (_ => nextDate())) {
      sqlDateToDate(dateToSqlDate(date)) should be(date)
    }
  }

  "Converter helper methods" should "work correctly" in {
    object TestConverter extends Converters

    val validLength                       = nextInt(10)
    val valid                             = nextToken(validLength)
    val invalid                           = nextToken(validLength + nextInt(10, 1))
    def mapper(s: String): Option[String] = if (s.length == validLength) Some(s) else None

    TestConverter.fromStringOrThrow(valid, mapper, valid) should be(valid)
    TestConverter.expectValid(mapper, valid) should be(valid)
    an[DatabaseException] should be thrownBy TestConverter.fromStringOrThrow(invalid, mapper, invalid)
  }

}