From 1299aecb3a0035a23a0e758abdf0e70d8555906f Mon Sep 17 00:00:00 2001 From: "Michael S. Klishin" Date: Thu, 4 Aug 2011 17:44:31 +0400 Subject: [PATCH] Implement monger.core/connect and monger.core/get-db --- src/monger/core.clj | 36 +++++++++++++++++++++++++++++++++++- test/monger/test/core.clj | 29 ++++++++++++++++++++++++++--- 2 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/monger/core.clj b/src/monger/core.clj index 9431652..b8f7c75 100644 --- a/src/monger/core.clj +++ b/src/monger/core.clj @@ -1 +1,35 @@ -(ns monger.core) +(ns monger.core + (:import (com.mongodb Mongo DB)) + ) + +;; +;; Defaults +;; + +(def ^:dynamic *default-host* "localhost") +(def ^:dynamic *default-port* 27017) + + +;; +;; Protocols +;; + + + + +;; +;; API +;; + +(defn ^Mongo connect + "Connects to MongoDB" + ([] + (Mongo.)) + ([{ :keys [host port] :or { host *default-host*, port *default-port* }}] + (Mongo. host port))) + +(defn ^DB get-db + "Get database reference by name" + [^Mongo connection, ^String name] + (.getDB connection name)) + diff --git a/test/monger/test/core.clj b/test/monger/test/core.clj index 8254bce..030e053 100644 --- a/test/monger/test/core.clj +++ b/test/monger/test/core.clj @@ -1,6 +1,29 @@ (ns monger.test.core - (:use [monger.core]) + (:require [monger.core]) + (:import (com.mongodb Mongo DB)) (:use [clojure.test])) -(deftest replace-me ;; FIXME: write - (is false "No tests have been written.")) +(deftest connect-to-mongo-with-default-host-and-port + (let [connection (monger.core/connect)] + (is (instance? com.mongodb.Mongo connection)))) + + +(deftest connect-to-mongo-with-default-host-and-explicit-port + (let [connection (monger.core/connect { :port 27017 })] + (is (instance? com.mongodb.Mongo connection)))) + + +(deftest connect-to-mongo-with-default-port-and-explicit-host + (let [connection (monger.core/connect { :host "127.0.0.1" })] + (is (instance? com.mongodb.Mongo connection)))) + + +(deftest get-database + (let [connection (monger.core/connect) + db (monger.core/get-db connection "monger-test")] + (is (instance? com.mongodb.DB db)))) + +;; (deftest get-database-with-valid-credentials +;; (let [connection (monger.core/connect) +;; db (monger.core/get-db connection "monger-test" "monger" "test_password")] +;; (is (instance? com.mongodb.DB db))))