Test case with child documents embedded into parent now passes

This commit is contained in:
Michael S. Klishin 2012-03-06 12:07:02 +04:00
parent a2eb9ce964
commit c1409eb81e
2 changed files with 25 additions and 10 deletions

View file

@ -56,15 +56,22 @@
(defn build (defn build
"Generates a new document and returns it"
[f-group f-name & { :as overrides }] [f-group f-name & { :as overrides }]
(let [d (@defaults (name f-group)) (let [d (@defaults (name f-group))
attributes (get-in @factories [(name f-group) (name f-name)])] attributes (get-in @factories [(name f-group) (name f-name)])]
(expand-all (merge { :_id (ObjectId.) } d attributes overrides)))) (expand-all (merge { :_id (ObjectId.) } d attributes overrides))))
(defn seed (defn seed
"Generates and inserts a new document, then returns it"
[f-group f-name & { :as overrides }] [f-group f-name & { :as overrides }]
(io! (io!
(let [doc (apply build f-group f-name (flatten (vec overrides))) (let [doc (apply build f-group f-name (flatten (vec overrides)))
oid (:_id doc)] oid (:_id doc)]
(assert (mr/ok? (mc/insert f-group doc))) (assert (mr/ok? (mc/insert f-group doc)))
doc))) doc)))
(defn embedded-doc
[f-group f-name & { :as overrides }]
(fn []
(apply build f-group f-name (flatten (vec overrides)))))

View file

@ -20,7 +20,10 @@
(factory "domains" "clojure" (factory "domains" "clojure"
:name "clojure.org" :name "clojure.org"
:created-at (-> 2 days ago)) :created-at (-> 2 days ago)
:embedded [(embedded-doc "pages" "http://clojure.org/lisp")
(embedded-doc "pages" "http://clojure.org/jvm_hosted")
(embedded-doc "pages" "http://clojure.org/runtime_polymorphism")])
(factory "domains" "elixir" (factory "domains" "elixir"
:name "elixir-lang.org" :name "elixir-lang.org"
@ -31,10 +34,13 @@
}) })
(factory "pages" "http://clojure.org/rationale" (factory "pages" "http://clojure.org/rationale"
:name "/rationale" :name "/rationale")
:created-at (-> 2 days ago) (factory "pages" "http://clojure.org/jvm_hosted"
;; :domain-id (parent-id "domains" "clojure") :name "/jvm_hosted")
) (factory "pages" "http://clojure.org/runtime_polymorphism"
:name "/runtime_polymorphism")
(factory "pages" "http://clojure.org/lisp"
:name "/lisp")
(deftest test-building-documents-from-a-factory-case-1 (deftest test-building-documents-from-a-factory-case-1
(let [t (-> 2 weeks ago) (let [t (-> 2 weeks ago)
@ -58,7 +64,9 @@
(is (= oid (:_id doc))) (is (= oid (:_id doc)))
(is (= t (:created-at doc))) (is (= t (:created-at doc)))
(is (= "clojurewerkz.org" (:name doc))) (is (= "clojurewerkz.org" (:name doc)))
(is (:ipv6-enabled doc)))) (is (:ipv6-enabled doc))
(is (= ["/lisp" "/jvm_hosted" "/runtime_polymorphism"]
(vec (map :name (:embedded doc)))))))
(deftest test-building-documents-from-a-factory-case-4 (deftest test-building-documents-from-a-factory-case-4