Skip to content

Commit

Permalink
Merge pull request #19 from Commonfare-net/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
aspasia committed Jan 2, 2019
2 parents 9f06649 + b7b0187 commit 4fcc5e2
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 9 deletions.
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
language: clojure
lein: lein
lein: 2.8.1
before_script:
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
- echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
Expand All @@ -10,7 +10,8 @@ before_script:
script: lein midje
jdk:
- openjdk7
- oraclejdk7
- oraclejdk8
- openjdk8
- oraclejdk9
services:
- mongodb
8 changes: 4 additions & 4 deletions project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(defproject org.clojars.dyne/clj-storage "0.8.0"
(defproject org.clojars.dyne/clj-storage "0.9.0"
:description "Minimal storage library"
:url "https://github.com/PIENews/clj-storage"

Expand All @@ -7,7 +7,7 @@
:year 2017
:key "gpl-3.0"}

:dependencies [[org.clojure/clojure "1.8.0"]
:dependencies [[org.clojure/clojure "1.9.0"]

;; logs
[com.taoensso/timbre "4.10.0"]
Expand All @@ -16,10 +16,10 @@
[org.clojars.dyne/monger "3.2.0-SNAPSHOT"]

;; file storage
[com.taoensso/nippy "2.13.0"]
[com.taoensso/nippy "2.14.0"]
]

:source-paths ["src" "test"]
:resource-paths ["resources" "test-resources"]
:profiles {:dev {:dependencies [[midje "1.8.3"]]
:profiles {:dev {:dependencies [[midje "1.9.4"]]
:plugins [[lein-midje "3.1.3"]]}})
5 changes: 4 additions & 1 deletion src/clj_storage/db/mongo.clj
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,14 @@
(defn create-mongo-store
([mongo-db coll]
(create-mongo-store mongo-db coll {}))
([mongo-db coll {:keys [expireAfterSeconds]}]
([mongo-db coll {:keys [expireAfterSeconds unique-index]}]
(let [store (MongoStore. mongo-db coll)]
(when expireAfterSeconds
(mc/ensure-index mongo-db coll {:created-at 1}
{:expireAfterSeconds expireAfterSeconds}))
(when unique-index
(doseq [index unique-index]
(mc/ensure-index mongo-db coll (array-map index 1) {:unique true})))
store)))

(defn create-mongo-stores
Expand Down
11 changes: 9 additions & 2 deletions test/clj_storage/test/db/mongo.clj
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,24 @@
(facts "Test the mongo stores creation"
(let [name-param-m {"simple-store" {}
"transaction-store" {}
"store-with-ttl" {:expireAfterSeconds 30}}
"store-with-ttl" {:expireAfterSeconds 30}
"store-with-index" {:unique-index [:apikey
:client-app]}}
stores (create-mongo-stores (test-db/get-test-db)
name-param-m)]
;; insert document so store is created
(mcol/insert (test-db/get-test-db) "simple-store" {:title "some document"})
(db/get-collection-names (test-db/get-test-db)) => #{"simple-store"
"store-with-ttl"}
"store-with-ttl", "store-with-index"}
;; list-index is not part of the collection names since Mongo 3.07 ; related commit https://github.com/mongodb/mongo/commit/fa24b6adab2f71a3c07d8810d04d5e0da4c5ac59
(m/command (test-db/get-test-db) {:listIndexes "simple-store"}) => {"cursor" {"id" 0, "ns" "test-db.$cmd.listIndexes.simple-store", "firstBatch" [{"v" 2, "key" {"_id" 1}, "name" "_id_", "ns" "test-db.simple-store"}]}, "ok" 1.0}

(m/command (test-db/get-test-db) {:listIndexes "store-with-ttl"}) => {"cursor" {"id" 0, "ns" "test-db.$cmd.listIndexes.store-with-ttl", "firstBatch" [{"v" 2, "key" {"_id" 1}, "name" "_id_", "ns" "test-db.store-with-ttl"} {"v" 2, "key" {"created-at" 1}, "name" "created-at_1", "ns" "test-db.store-with-ttl", "expireAfterSeconds" 30}]}, "ok" 1.0}

(-> (test-db/get-test-db)
(m/command {:listIndexes "store-with-index"})
(get "cursor")
count) => 3

(count (mcol/indexes-on (test-db/get-test-db) "simple-store")) => 1
(count (mcol/indexes-on (test-db/get-test-db) "store-with-ttl")) => 2
Expand Down

0 comments on commit 4fcc5e2

Please sign in to comment.