This repository has been archived by the owner on Oct 2, 2020. It is now read-only.
/
stitch_test.clj
73 lines (65 loc) · 3.38 KB
/
stitch_test.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
(ns slam.hound.stitch-test
(:require [clojure.test :refer [deftest is]]
[slam.hound.stitch :refer [ns-from-map stitch-up sort-subclauses collapse-clause]]))
(def sample-ns-form '(ns slamhound.sample
"Testing some things going on here."
(:require [clojure.java.io :as io]
[clojure.set :as set]
[slam.hound.stitch :refer [ns-from-map]]
[clojure.test :refer [is]]
[clojure.test :refer [deftest]])
(:import java.io.File java.io.ByteArrayInputStream
clojure.lang.Compiler$BodyExpr
java.util.UUID)
(:refer-clojure :exclude [compile test])))
(def sample-ns-map
{:name 'slamhound.sample
:meta {:doc "Testing some things going on here."}
:require-refer '[[slam.hound.stitch :refer [ns-from-map]]
[clojure.test :refer [is]]
[clojure.test :refer [deftest]]]
:require-as '([clojure.java.io :as io] [clojure.set :as set])
:import '(java.io.File java.io.ByteArrayInputStream
clojure.lang.Compiler$BodyExpr java.util.UUID)
:refer-clojure '(:exclude [compile test])})
(deftest ^:unit test-ns-from-map
(is (= sample-ns-form (ns-from-map sample-ns-map))))
;; TODO Dec 21st - is this test neccecary? It *should* be covered by tests for stitch-up
(deftest ^:unit test-sort
(is (= {:name 'slamhound.sample
:meta {:doc "Testing some things going on here."}
:require-refer '[[clojure.test :refer [deftest]]
[clojure.test :refer [is]]
[slam.hound.stitch :refer [ns-from-map]]]
:require-as '([clojure.java.io :as io] [clojure.set :as set])
:import '(clojure.lang.Compiler$BodyExpr
java.io.ByteArrayInputStream java.io.File java.util.UUID)
:refer-clojure '(:exclude [compile test])}
(sort-subclauses sample-ns-map))))
(deftest ^:unit test-collapse-import
(is (= {:import '[(clojure.lang Compiler$BodyExpr)
(java.io ByteArrayInputStream File)
(java.util UUID)]}
(collapse-clause {:import '(clojure.lang.Compiler$BodyExpr
java.io.ByteArrayInputStream
java.io.File java.util.UUID)}
:import))))
(deftest ^:unit test-collapse-use
(is (= {:require-refer '[[clojure.test :refer [deftest is]]
[slam.hound.stitch :refer [ns-from-map]]]}
(collapse-clause {:require-refer '[[clojure.test :refer [deftest]]
[slam.hound.stitch :refer [ns-from-map]]
[clojure.test :refer [is]]]}
:require-refer))))
(deftest ^:unit test-stitch-up
(is (= "(ns slamhound.sample
\"Testing some things going on here.\"
(:require [clojure.java.io :as io]
[clojure.set :as set]
[clojure.test :refer [deftest is]]
[slam.hound.stitch :refer [ns-from-map]])
(:import (clojure.lang Compiler$BodyExpr)
(java.io ByteArrayInputStream File)
(java.util UUID))
(:refer-clojure :exclude [compile test]))
" (stitch-up sample-ns-map))))