monger.convertion => monger.conversion

This commit is contained in:
Michael S. Klishin 2011-09-11 22:52:15 +04:00
parent 30ed15e67f
commit 6d12e34465
8 changed files with 33 additions and 34 deletions

View file

@ -11,7 +11,7 @@
(:refer-clojure :exclude [find remove count drop]) (:refer-clojure :exclude [find remove count drop])
(:import (com.mongodb Mongo DB DBCollection WriteResult DBObject WriteConcern DBCursor) (java.util List Map) (clojure.lang IPersistentMap ISeq)) (:import (com.mongodb Mongo DB DBCollection WriteResult DBObject WriteConcern DBCursor) (java.util List Map) (clojure.lang IPersistentMap ISeq))
(:require [monger core result]) (:require [monger core result])
(:use [monger.convertion])) (:use [monger.conversion]))
;; ;;
;; API ;; API

View file

@ -21,7 +21,7 @@
;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
;; THE SOFTWARE. ;; THE SOFTWARE.
(ns monger.convertion (ns monger.conversion
(:import (com.mongodb DBObject BasicDBObject BasicDBList DBCursor) (:import (com.mongodb DBObject BasicDBObject BasicDBList DBCursor)
(clojure.lang IPersistentMap Keyword) (clojure.lang IPersistentMap Keyword)
(java.util List Map))) (java.util List Map)))

View file

@ -13,7 +13,7 @@
is in the monger.collection namespace."} is in the monger.collection namespace."}
monger.core monger.core
(:refer-clojure :exclude [count]) (:refer-clojure :exclude [count])
(:use [monger.convertion]) (:use [monger.conversion])
(:import (com.mongodb Mongo DB WriteConcern DBObject DBCursor) (:import (com.mongodb Mongo DB WriteConcern DBObject DBCursor)
(java.util Map))) (java.util Map)))

View file

@ -10,7 +10,7 @@
(ns monger.result (ns monger.result
(:import (com.mongodb DBObject WriteResult) (:import (com.mongodb DBObject WriteResult)
(clojure.lang IPersistentMap)) (clojure.lang IPersistentMap))
(:require [monger convertion])) (:require [monger conversion]))
;; ;;

View file

@ -3,7 +3,7 @@
(ns monger.test.collection (ns monger.test.collection
(:import [com.mongodb WriteResult WriteConcern DBCursor DBObject CommandResult$CommandFailure] (:import [com.mongodb WriteResult WriteConcern DBCursor DBObject CommandResult$CommandFailure]
[java.util Date]) [java.util Date])
(:require [monger core collection result util convertion] (:require [monger core collection result util conversion]
[clojure stacktrace]) [clojure stacktrace])
(:use [clojure.test])) (:use [clojure.test]))
@ -59,8 +59,8 @@
(deftest insert-a-basic-db-object-without-id-and-with-default-write-concern (deftest insert-a-basic-db-object-without-id-and-with-default-write-concern
(let [collection "people" (let [collection "people"
doc (monger.convertion/to-db-object { :name "Joe", :age 30 })] doc (monger.conversion/to-db-object { :name "Joe", :age 30 })]
(is (nil? (monger.util/get-id doc))) (is (nil? (.get ^DBObject doc "_id")))
(monger.collection/insert "people" doc) (monger.collection/insert "people" doc)
(is (not (nil? (monger.util/get-id doc)))))) (is (not (nil? (monger.util/get-id doc))))))
@ -155,8 +155,8 @@
(monger.collection/insert collection doc) (monger.collection/insert collection doc)
(def #^DBObject found-one (monger.collection/find-one collection { :language "Clojure" })) (def #^DBObject found-one (monger.collection/find-one collection { :language "Clojure" }))
(is (= (:_id doc) (monger.util/get-id found-one))) (is (= (:_id doc) (monger.util/get-id found-one)))
(is (= (monger.convertion/from-db-object found-one true) doc)) (is (= (monger.conversion/from-db-object found-one true) doc))
(is (= (monger.convertion/to-db-object doc) found-one)))) (is (= (monger.conversion/to-db-object doc) found-one))))
(deftest find-one-full-document-as-map-when-collection-has-matches (deftest find-one-full-document-as-map-when-collection-has-matches
@ -283,7 +283,7 @@
(is (= 1 (.count scala-libs))) (is (= 1 (.count scala-libs)))
(is (= 3 (.count clojure-libs))) (is (= 3 (.count clojure-libs)))
(doseq [i clojure-libs] (doseq [i clojure-libs]
(let [doc (monger.convertion/from-db-object i true)] (let [doc (monger.conversion/from-db-object i true)]
(is (= (:language doc) "Clojure")))) (is (= (:language doc) "Clojure"))))
(is (empty? (monger.collection/find collection { :language "Erlang" } [:name])))))) (is (empty? (monger.collection/find collection { :language "Erlang" } [:name]))))))
@ -328,7 +328,7 @@
(deftest save-a-new-basic-db-object (deftest save-a-new-basic-db-object
(let [collection "people" (let [collection "people"
doc (monger.convertion/to-db-object { :name "Joe", :age 30 })] doc (monger.conversion/to-db-object { :name "Joe", :age 30 })]
(is (nil? (monger.util/get-id doc))) (is (nil? (monger.util/get-id doc)))
(monger.collection/save "people" doc) (monger.collection/save "people" doc)
(is (not (nil? (monger.util/get-id doc)))))) (is (not (nil? (monger.util/get-id doc))))))

View file

@ -1,5 +1,5 @@
(ns monger.test.convertion (ns monger.test.conversion
(:require [monger core collection convertion]) (:require [monger core collection conversion])
(:import (com.mongodb DBObject BasicDBObject BasicDBList) (java.util List ArrayList)) (:import (com.mongodb DBObject BasicDBObject BasicDBList) (java.util List ArrayList))
(:use [clojure.test])) (:use [clojure.test]))
@ -10,28 +10,28 @@
(deftest convert-nil-to-dbobject (deftest convert-nil-to-dbobject
(let [input nil (let [input nil
output (monger.convertion/to-db-object input)] output (monger.conversion/to-db-object input)]
(is (nil? output)))) (is (nil? output))))
(deftest convert-integer-to-dbobject (deftest convert-integer-to-dbobject
(let [input 1 (let [input 1
output (monger.convertion/to-db-object input)] output (monger.conversion/to-db-object input)]
(is (= input output)))) (is (= input output))))
(deftest convert-float-to-dbobject (deftest convert-float-to-dbobject
(let [input 11.12 (let [input 11.12
output (monger.convertion/to-db-object input)] output (monger.conversion/to-db-object input)]
(is (= input output)))) (is (= input output))))
(deftest convert-string-to-dbobject (deftest convert-string-to-dbobject
(let [input "MongoDB" (let [input "MongoDB"
output (monger.convertion/to-db-object input)] output (monger.conversion/to-db-object input)]
(is (= input output)))) (is (= input output))))
(deftest convert-map-to-dbobject (deftest convert-map-to-dbobject
(let [input { :int 1, :string "Mongo", :float 22.23 } (let [input { :int 1, :string "Mongo", :float 22.23 }
output #^DBObject (monger.convertion/to-db-object input)] output #^DBObject (monger.conversion/to-db-object input)]
(is (= 1 (.get output "int"))) (is (= 1 (.get output "int")))
(is (= "Mongo" (.get output "string"))) (is (= "Mongo" (.get output "string")))
(is (= 22.23 (.get output "float"))))) (is (= 22.23 (.get output "float")))))
@ -39,7 +39,7 @@
(deftest convert-nested-map-to-dbobject (deftest convert-nested-map-to-dbobject
(let [input { :int 1, :string "Mongo", :float 22.23, :map { :int 10, :string "Clojure", :float 11.9, :list '(1 "a" :b), :map { :key "value" } } } (let [input { :int 1, :string "Mongo", :float 22.23, :map { :int 10, :string "Clojure", :float 11.9, :list '(1 "a" :b), :map { :key "value" } } }
output #^DBObject (monger.convertion/to-db-object input) output #^DBObject (monger.conversion/to-db-object input)
inner #^DBObject (.get output "map")] inner #^DBObject (.get output "map")]
(is (= 10 (.get inner "int"))) (is (= 10 (.get inner "int")))
(is (= "Clojure" (.get inner "string"))) (is (= "Clojure" (.get inner "string")))
@ -51,7 +51,7 @@
;; to obtain _id that was generated. MK. ;; to obtain _id that was generated. MK.
(deftest convert-dbobject-to-dbobject (deftest convert-dbobject-to-dbobject
(let [input (BasicDBObject.) (let [input (BasicDBObject.)
output (monger.convertion/to-db-object input)] output (monger.conversion/to-db-object input)]
(is (= input output)))) (is (= input output))))
@ -62,16 +62,16 @@
;; ;;
(deftest convert-nil-from-db-object (deftest convert-nil-from-db-object
(is (nil? (monger.convertion/from-db-object nil false))) (is (nil? (monger.conversion/from-db-object nil false)))
(is (nil? (monger.convertion/from-db-object nil true)))) (is (nil? (monger.conversion/from-db-object nil true))))
(deftest convert-integer-from-dbobject (deftest convert-integer-from-dbobject
(is (= 2 (monger.convertion/from-db-object 2 false))) (is (= 2 (monger.conversion/from-db-object 2 false)))
(is (= 2 (monger.convertion/from-db-object 2 true)))) (is (= 2 (monger.conversion/from-db-object 2 true))))
(deftest convert-float-from-dbobject (deftest convert-float-from-dbobject
(is (= 3.3 (monger.convertion/from-db-object 3.3 false))) (is (= 3.3 (monger.conversion/from-db-object 3.3 false)))
(is (= 3.3 (monger.convertion/from-db-object 3.3 true)))) (is (= 3.3 (monger.conversion/from-db-object 3.3 true))))
(deftest convert-flat-db-object-to-map-without-keywordizing (deftest convert-flat-db-object-to-map-without-keywordizing
(let [name "Michael" (let [name "Michael"
@ -79,7 +79,7 @@
input (doto (BasicDBObject.) input (doto (BasicDBObject.)
(.put "name" name) (.put "name" name)
(.put "age" age)) (.put "age" age))
output (monger.convertion/from-db-object input false)] output (monger.conversion/from-db-object input false)]
(is (= (output { "name" name, "age" age }))) (is (= (output { "name" name, "age" age })))
(is (= (output "name") name)) (is (= (output "name") name))
(is (nil? (output :name))) (is (nil? (output :name)))
@ -93,7 +93,7 @@
input (doto (BasicDBObject.) input (doto (BasicDBObject.)
(.put "name" name) (.put "name" name)
(.put "age" age)) (.put "age" age))
output (monger.convertion/from-db-object input true)] output (monger.conversion/from-db-object input true)]
(is (= (output { :name name, :age age }))) (is (= (output { :name name, :age age })))
(is (= (output :name) name)) (is (= (output :name) name))
(is (nil? (output "name"))) (is (nil? (output "name")))
@ -112,7 +112,7 @@
input (doto (BasicDBObject.) input (doto (BasicDBObject.)
(.put "_id" did) (.put "_id" did)
(.put "nested" nested)) (.put "nested" nested))
output (monger.convertion/from-db-object input false)] output (monger.conversion/from-db-object input false)]
(is (= (output "_id") did)) (is (= (output "_id") did))
(is (= (-> output (get "nested") (get "int")) 101)) (is (= (-> output (get "nested") (get "int")) 101))
(is (= (-> output (get "nested") (get "list")) ["red" "green" "blue"])) (is (= (-> output (get "nested") (get "list")) ["red" "green" "blue"]))

View file

@ -1,6 +1,6 @@
(ns monger.test.result (ns monger.test.result
(:import (com.mongodb BasicDBObject WriteResult WriteConcern) (java.util Date)) (:import (com.mongodb BasicDBObject WriteResult WriteConcern) (java.util Date))
(:require [monger core collection convertion]) (:require [monger core collection conversion])
(:use [clojure.test])) (:use [clojure.test]))

View file

@ -1,14 +1,13 @@
(ns monger.test.util (ns monger.test.util
(:import (com.mongodb DBObject)) (:import (com.mongodb DBObject))
(:require [monger util convertion]) (:require [monger util conversion])
(:use [clojure.test])) (:use [clojure.test]))
(deftest get-object-id (deftest get-object-id
(let [id #^ObjectId (monger.util/object-id) (let [id ^ObjectId (monger.util/object-id)
input #^DBObject (monger.convertion/to-db-object { :_id id }) input ^DBObject (monger.conversion/to-db-object { :_id id })
output (monger.util/get-id input)] output (monger.util/get-id input)]
(is (not (nil? output))))) (is (not (nil? output)))))