File tree Expand file tree Collapse file tree 3 files changed +37
-5
lines changed Expand file tree Collapse file tree 3 files changed +37
-5
lines changed Original file line number Diff line number Diff line change 20
20
[im.chit/hara.io.watch " 2.1.7" ]
21
21
[im.chit/hara.io.scheduler " 2.3.6" ]
22
22
[im.chit/adi " 0.3.2" ]
23
- [com.datomic/datomic-free " 0.9.4815.12 " ]
23
+ [com.datomic/datomic-free " 0.9.5656 " ]
24
24
[com.novemberain/monger " 3.0.2" ]
25
25
[org.clojure/java.jdbc " 0.3.5" ]
26
26
[com.h2database/h2 " 1.4.181" ]
Original file line number Diff line number Diff line change 2
2
(:require [com.stuartsierra.component :as component]
3
3
[datomic.api :as d]))
4
4
5
- (defrecord Datomic [uri conn]
5
+ (defrecord Datomic [uri conn init-fn ]
6
6
component /Lifecycle
7
7
(start [component]
8
8
(let [db (d/create-database uri)
9
- conn (d/connect uri)]
9
+ conn (d/connect uri)
10
+ _ (when init-fn (init-fn conn))]
10
11
(assoc component :conn conn)))
11
12
(stop [component]
12
13
(when conn (d/release conn))
13
14
(assoc component :conn nil )))
14
15
15
- (defn new-datomic-db [uri]
16
- (map->Datomic {:uri uri}))
16
+ (defn new-datomic-db
17
+ ([uri]
18
+ (map->Datomic {:uri uri}))
19
+ ([uri init-fn]
20
+ (map->Datomic {:uri uri :init-fn init-fn})))
Original file line number Diff line number Diff line change 5
5
[clojure.test :refer [deftest testing is]]))
6
6
7
7
(def uri " datomic:mem://localhost:4334/framework-test" )
8
+
8
9
(def datomic-db (new-datomic-db uri))
9
10
10
11
(deftest datomic-lifecycle
14
15
datomic.peer.LocalConnection))
15
16
(is (d/delete-database uri))
16
17
(alter-var-root #'datomic-db component/stop)))
18
+
19
+ (def schema '[{:db/ident ::name
20
+ :db/valueType :db.type/string
21
+ :db/cardinality :db.cardinality/one
22
+ :db/doc " a test attr" }])
23
+
24
+ (defn init-schema [conn]
25
+ @(d/transact conn schema))
26
+
27
+ (def datomic-db-with-schema (new-datomic-db uri
28
+ init-schema))
29
+
30
+ (defn has-attribute?
31
+ " Does database have an attribute named attr-name?"
32
+ [db attr-name]
33
+ (-> (d/entity db attr-name)
34
+ :db.install/_attribute
35
+ boolean))
36
+
37
+ (deftest datomic-lifecycle-with-schema
38
+ (testing " Datomic lifecycle operations."
39
+ (alter-var-root #'datomic-db-with-schema component/start)
40
+ (is (= (type (:conn datomic-db-with-schema))
41
+ datomic.peer.LocalConnection))
42
+ (is (has-attribute? (d/db (:conn datomic-db-with-schema)) ::name ))
43
+ (is (d/delete-database uri))
44
+ (alter-var-root #'datomic-db-with-schema component/stop)))
You can’t perform that action at this time.
0 commit comments