lila/modules/db/src/test/DateTest.scala

63 lines
1.7 KiB
Scala

package lila.db
import test.WithTestColl
import Implicits._
import org.specs2.specification._
import org.specs2.mutable._
import org.specs2.execute.{ Result, AsResult }
import play.api.libs.json._
import play.api.test._
import reactivemongo.api._
import reactivemongo.bson._
import org.joda.time.DateTime
import scala.concurrent.ExecutionContext.Implicits.global
class DateTest extends Specification {
val date = DateTime.now
import api.Free._
import play.modules.reactivemongo.Implicits._
"date conversion" should {
"js to bson" in {
val doc = JsObjectWriter.write(Json.obj(
"ca" -> $gt($date(date))
))
doc.getAsTry[BSONDocument]("ca") flatMap { gt =>
gt.getAsTry[BSONDateTime]("$gt")
} must_== scala.util.Success(BSONDateTime(date.getMillis))
}
}
// "save and retrieve" should {
// val trans = __.json update Tube.Helpers.readDate('ca)
// "JsObject" in new WithTestColl {
// (coll.insert(Json.obj("ca" -> $date(date))) >>
// coll.find(Json.obj()).one[JsObject]
// ).await flatMap (x ⇒ (x transform trans).asOpt) must beSome.like {
// case o ⇒ o \ "ca" must_== date
// }
// }
// "BSONDocument" in new WithTestColl {
// val doc = BSONDocument(
// "ca" -> BSONDateTime(date.getMillis)
// )
// coll.insert(doc).map(lastError ⇒
// println("Mongo LastErorr:%s".format(lastError))
// )
// coll.find[JsValue](Json.obj()).one.map { person ⇒
// println(person)
// }
// success
// }
// "$set DateTime" in new WithApplication {
// $set("foo" -> date) must_== Json.obj(
// "$set" -> Json.obj("foo" -> Json.obj("$date" -> date.getMillis)))
// }
// }
}