Skip to content

Commit

Permalink
Improve test coverage.
Browse files Browse the repository at this point in the history
  • Loading branch information
greglook committed May 22, 2014
1 parent b113890 commit 91db3f2
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 34 deletions.
73 changes: 41 additions & 32 deletions test/puget/data_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,36 @@
[puget.data :as data]))


(defrecord TestRecord [x y])
(data/extend-tagged-map TestRecord 'test/record)
(deftest tagged-value-extension
(let [rec (TestRecord. :foo :bar)]
(is (= 'test/record (data/edn-tag rec)))
(is (= {:x :foo, :y :bar} (data/edn-value rec)))))
(defn test-tagged-value
[data t v & [reader]]
(is (= t (data/edn-tag data)))
(is (= v (data/edn-value data)))
(let [s (data/edn-str data)
data' (edn/read-string (if reader {:readers {t reader}} {}) s)]
(is (= s (pr-str data)))
(is (= data data'))))


(deftest generic-tagged-value
(let [data (data/tagged-value 'foo :bar)
string (data/edn-str data)]
(is (= 'foo (data/edn-tag data)))
(is (= :bar (data/edn-value data)))
(is (= data (edn/read-string {:default data/tagged-value} string)))))
(deftest inst-tagged-values
(test-tagged-value
(java.util.Date. 1383271402749)
'inst "2013-11-01T02:03:22.749-00:00"))


(deftest uuid-tagged-values
(test-tagged-value
(java.util.UUID/fromString "96d91316-53b9-4800-81c1-97ae9f4b86b0")
'uuid "96d91316-53b9-4800-81c1-97ae9f4b86b0"))


(deftest uri-tagged-values
(test-tagged-value
(java.net.URI. "http://en.wikipedia.org/wiki/Uniform_resource_identifier")
'uri "http://en.wikipedia.org/wiki/Uniform_resource_identifier"
data/read-uri))

(deftest byte-arrays

(deftest bin-tagged-values
(let [byte-arr (.getBytes "foobarbaz")
string (data/edn-str byte-arr)
read-arr (edn/read-string {:readers {'bin data/read-bin}} string)]
Expand All @@ -31,22 +44,18 @@
(is (= (seq byte-arr) (seq read-arr)))))


(defn test-tagged-value
[data t v]
(is (= t (data/edn-tag data)))
(is (= v (data/edn-value data)))
(let [s (data/edn-str data)]
(is (= s (pr-str data)))))


(deftest built-in-printing
(testing "TaggedValue"
(test-tagged-value
(java.util.Date. 1383271402749)
'inst "2013-11-01T02:03:22.749-00:00")
(test-tagged-value
(java.util.UUID/fromString "96d91316-53b9-4800-81c1-97ae9f4b86b0")
'uuid "96d91316-53b9-4800-81c1-97ae9f4b86b0")
(test-tagged-value
(java.net.URI. "http://en.wikipedia.org/wiki/Uniform_resource_identifier")
'uri "http://en.wikipedia.org/wiki/Uniform_resource_identifier")))
(deftest generic-tagged-value
(let [data (data/tagged-value 'foo :bar)
string (data/edn-str data)]
(is (= 'foo (data/edn-tag data)))
(is (= :bar (data/edn-value data)))
(is (= "#foo :bar" (pr-str data)))
(is (= data (edn/read-string {:default data/tagged-value} string)))))


(defrecord TestRecord [x y])
(data/extend-tagged-map TestRecord 'test/record)
(deftest tagged-value-extension
(let [rec (TestRecord. :foo :bar)]
(is (= 'test/record (data/edn-tag rec)))
(is (= {:x :foo, :y :bar} (data/edn-value rec)))))
21 changes: 19 additions & 2 deletions test/puget/printer_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,27 @@
[clojure.string :as str]
[clojure.test :refer :all]
(puget
[data :as data]
[data :refer [TaggedValue]]
[printer :refer :all])))


(deftest color-scheme-setting
(let [old-scheme *color-scheme*]
(set-color-scheme! {:tag [:green]})
(is (= [:green] (:tag *color-scheme*)))
(set-color-scheme! :nil [:black] :number [:bold :cyan])
(is (= [:black] (:nil *color-scheme*)))
(is (= [:bold :cyan] (:number *color-scheme*)))
(set-color-scheme! old-scheme)))


(deftest map-delimiter-setting
(let [old-delim *map-delimiter*]
(set-map-commas!)
(is (= "," *map-delimiter*))
(alter-var-root #'*map-delimiter* (constantly old-delim))))


(deftest canonical-primitives
(testing "Primitive values"
(are [v text] (= text (-> v pprint with-out-str str/trim))
Expand Down Expand Up @@ -50,7 +67,7 @@


(deftest canonical-tagged-value
(let [tval (reify data/TaggedValue
(let [tval (reify TaggedValue
(edn-tag [this] 'foo)
(edn-value [this] :bar/baz))
doc (canonize tval)]))
Expand Down

0 comments on commit 91db3f2

Please sign in to comment.