From dfc494f7b4ea50b67138605308be1967d9d8dcd4 Mon Sep 17 00:00:00 2001 From: Mark Simpson Date: Mon, 23 Apr 2012 22:01:58 -0400 Subject: [PATCH] Added first real Midje test - with beginning of refactoring the SQL code\! --- src/defdrink/models/drinks.clj | 12 +++++------- src/defdrink/utils/sql.clj | 12 ++++++++++++ test/defdrink/test/models/drinks.clj | 7 +++++-- 3 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 src/defdrink/utils/sql.clj diff --git a/src/defdrink/models/drinks.clj b/src/defdrink/models/drinks.clj index edf66c1..e0e741d 100644 --- a/src/defdrink/models/drinks.clj +++ b/src/defdrink/models/drinks.clj @@ -1,13 +1,11 @@ (ns defdrink.models.drinks - (:require [clojure.java.jdbc :as sql])) + (:require [clojure.java.jdbc :as sql2]) + (:require [defdrink.utils.sql :as sql])) (defn all [] - (sql/with-connection (System/getenv "DATABASE_URL") - (sql/with-query-results results - ["select * from drinks order by name asc"] - (into [] results)))) + (sql/select :drinks)) (defn insert [name] - (sql/with-connection (System/getenv "DATABASE_URL") - (sql/insert-record :drinks {:name name}))) + (sql2/with-connection (System/getenv "DATABASE_URL") + (sql2/insert-record :drinks {:name name}))) diff --git a/src/defdrink/utils/sql.clj b/src/defdrink/utils/sql.clj new file mode 100644 index 0000000..b675985 --- /dev/null +++ b/src/defdrink/utils/sql.clj @@ -0,0 +1,12 @@ +(ns defdrink.utils.sql + (:require [clojure.java.jdbc :as sql])) + +(defn- run-query [query] + (sql/with-query-results results [query] (into [] results))) + +(defn select [table] + (sql/with-connection + (System/getenv "DATABASE_URL") + (run-query (format "select * from %s" table)))) + + diff --git a/test/defdrink/test/models/drinks.clj b/test/defdrink/test/models/drinks.clj index c859c7d..2cf682e 100644 --- a/test/defdrink/test/models/drinks.clj +++ b/test/defdrink/test/models/drinks.clj @@ -1,5 +1,8 @@ (ns defdrink.test.models.drinks (:use clojure.test) - (:use midje.sweet)) + (:use midje.sweet) + (:use defdrink.models.drinks) + (:require [defdrink.utils.sql :as sql])) -(fact (+ 1 1) => even?) +(fact (all) => [...drink1... ...drink2...] + (provided (sql/select :drinks) => [...drink1... ...drink2...]))