/
parse_test.clj
56 lines (48 loc) · 1.4 KB
/
parse_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
(ns cascading.clojure.parse-test
(:use clojure.test)
(:import (cascading.tuple Fields))
(:use [cascading.clojure parse testing]))
(defn example [x] x)
(def obj-array-class (class (into-array Object [])))
(defn extract-obj-array [x]
(map (fn [e]
(if (instance? obj-array-class e)
(seq e)
e))
x))
(deftest parse-everything
(is (= [(fields ["foo"])
(fields ["bar"])
["cascading.clojure.parse-test" "example"]
(fields ["baz"])]
(extract-obj-array
(parse-args [#'example "foo" :fn> "bar" :> "baz"])))))
(deftest parse-everything-multiple-ins
(is (= [(fields ["foo" "bat"])
(fields ["bar"])
["cascading.clojure.parse-test" "example"]
(fields ["baz"])]
(extract-obj-array
(parse-args [#'example ["foo" "bat"]
:fn> "bar" :> "baz"])))))
(deftest parse-no-input-selectors
(is (= [Fields/ALL
(fields ["bar"])
["cascading.clojure.parse-test" "example"]
(fields ["baz"])]
(extract-obj-array
(parse-args [#'example :fn> "bar" :> "baz"])))))
(deftest parse-no-input-or-output-selectors
(is (= [Fields/ALL
(fields ["bar"])
["cascading.clojure.parse-test" "example"]
Fields/RESULTS]
(extract-obj-array
(parse-args [#'example :fn> "bar"])))))
(deftest parse-no-input-or-output-or-fn-selectors
(is (= [Fields/ALL
Fields/ARGS
["cascading.clojure.parse-test" "example"]
Fields/RESULTS]
(extract-obj-array
(parse-args [#'example])))))