From 12a46ca4ab67eb045d262a4ec458f30c12b7be53 Mon Sep 17 00:00:00 2001 From: "Michael S. Klishin" Date: Wed, 4 Jan 2012 19:56:38 +0400 Subject: [PATCH] Demonstrate querying with comparison operators ($lt, etc) over date fields and Joda Time integration --- test/monger/test/querying.clj | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/test/monger/test/querying.clj b/test/monger/test/querying.clj index 494f740..621736a 100644 --- a/test/monger/test/querying.clj +++ b/test/monger/test/querying.clj @@ -11,7 +11,8 @@ [monger.test.helper :as helper]) (:use [clojure.test] [monger.test.fixtures] - [monger conversion query operators])) + [monger conversion query operators joda-time] + [clj-time.core :only [date-time]])) (helper/connect!) @@ -77,7 +78,7 @@ ;; < ($lt), <= ($lte), > ($gt), >= ($gte) -(deftest query-using-dsl-and-$lt-operator +(deftest query-using-dsl-and-$lt-operator-with-integers (let [coll "docs" doc1 { :language "Clojure" :_id (ObjectId.) :inception_year 2006 } doc2 { :language "Java" :_id (ObjectId.) :inception_year 1992 } @@ -86,7 +87,21 @@ lt-result (with-collection "docs" (find { :inception_year { $lt 2000 } }) (limit 2))] - (is (= [doc2] lt-result)))) + (is (= [doc2] (vec lt-result))))) + + +(deftest query-using-dsl-and-$lt-operator-with-dates + (let [coll "docs" + ;; these rely on monger.joda-time being loaded. MK. + doc1 { :language "Clojure" :_id (ObjectId.) :inception_year (date-time 2006 1 1) } + doc2 { :language "Java" :_id (ObjectId.) :inception_year (date-time 1992 1 2) } + doc3 { :language "Scala" :_id (ObjectId.) :inception_year (date-time 2003 3 3) } + _ (mgcol/insert-batch coll [doc1 doc2]) + lt-result (with-collection "docs" + (find { :inception_year { $lt (date-time 2000 1 2) } }) + (limit 2))] + (is (= (map :_id [doc2]) + (map :_id (vec lt-result))))))