PageRenderTime 28ms CodeModel.GetById 32ms RepoModel.GetById 1ms app.codeStats 0ms

/test/cascading/clojure/parse_test.clj

https://github.com/phosphene/cascading-clojure
Clojure | 60 lines | 50 code | 10 blank | 0 comment | 9 complexity | 80570daa7af7b56730f54c435df413f3 MD5 | raw file
  1. (ns cascading.clojure.parse-test
  2. (:use clojure.test
  3. (cascading.clojure parse testing))
  4. (:import cascading.tuple.Fields))
  5. (defn example [x]
  6. x)
  7. (deftest test-fields
  8. (is (= (Fields. (into-array String ["foo"]))
  9. (fields "foo")))
  10. (is (= (Fields. (into-array String ["foo" "bar"]))
  11. (fields ["foo" "bar"]))))
  12. (deftest test-parse-fn-spec-simple
  13. (is (= ["cascading.clojure.parse-test" "example"]
  14. (parse-fn-spec #'example))))
  15. (deftest test-parse-fn-spec-hof
  16. (is (= ["cascading.clojure.parse-test" "example" 3]
  17. (parse-fn-spec [#'example 3]))))
  18. (deftest test-parse-fn-spec-invalid
  19. (is (thrown-with-msg? IllegalArgumentException #"Expected.*"
  20. (parse-fn-spec example))))
  21. (deftest test-parse-args-everything
  22. (is (= {:fn-spec ["cascading.clojure.parse-test" "example"]
  23. :< (fields "foo")
  24. :fn> (fields "bar")
  25. :> (fields "baz")}
  26. (parse-args [#'example :< "foo" :fn> "bar" :> "baz"]))))
  27. (deftest test-parse-args-everything-multiple-ins
  28. (is (= {:fn-spec ["cascading.clojure.parse-test" "example"]
  29. :< (fields ["foo" "bat"])
  30. :fn> (fields "bar")
  31. :> (fields "baz")}
  32. (parse-args [#'example :< ["foo" "bat"] :fn> "bar" :> "baz"]))))
  33. (deftest test-parse-args-no-input-fields
  34. (is (= {:fn-spec ["cascading.clojure.parse-test" "example"]
  35. :< Fields/ALL
  36. :fn> (fields "bar")
  37. :> (fields "baz")}
  38. (parse-args [#'example :fn> "bar" :> "baz"]))))
  39. (deftest test-parse-args-no-input-or-output-fields
  40. (is (= {:fn-spec ["cascading.clojure.parse-test" "example"]
  41. :< Fields/ALL
  42. :fn> (fields "bar")
  43. :> Fields/RESULTS}
  44. (parse-args [#'example :fn> "bar"]))))
  45. (deftest test-parse-args-no-input-or-output-or-fn-fields
  46. (is (= {:fn-spec ["cascading.clojure.parse-test" "example"]
  47. :< Fields/ALL
  48. :fn> Fields/ARGS
  49. :> Fields/RESULTS}
  50. (parse-args [#'example]))))