aboutsummaryrefslogtreecommitdiff
path: root/modules/shell/src
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2010-08-10 21:40:47 -0400
committerStuart Sierra <mail@stuartsierra.com>2010-08-10 21:40:47 -0400
commit38743f83bdd60d6687dabcea3864b04bbd554a6c (patch)
tree44b31d4900c2d5720679abe911694d64fc516d0a /modules/shell/src
parenta6a92b9b3d2bfd9a56e1e5e9cfba706d1aeeaae5 (diff)
Add test sources to their respective modules
Diffstat (limited to 'modules/shell/src')
-rw-r--r--modules/shell/src/test/clojure/clojure/contrib/test_shell.clj41
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/shell/src/test/clojure/clojure/contrib/test_shell.clj b/modules/shell/src/test/clojure/clojure/contrib/test_shell.clj
new file mode 100644
index 00000000..120093e7
--- /dev/null
+++ b/modules/shell/src/test/clojure/clojure/contrib/test_shell.clj
@@ -0,0 +1,41 @@
+(ns clojure.contrib.test-shell
+ (:use clojure.test
+ clojure.contrib.shell)
+ (:import (java.io File)))
+
+; workaroung to access private parse-args. Better way?
+(def parse-args ((ns-interns 'clojure.contrib.shell) 'parse-args))
+(def as-file ((ns-interns 'clojure.contrib.shell) 'as-file))
+(def as-env-string ((ns-interns 'clojure.contrib.shell) 'as-env-string))
+
+(deftest test-parse-args
+ (are [x y] (= x y)
+ {:cmd [nil] :out "UTF-8" :dir nil :env nil} (parse-args [])
+ {:cmd ["ls"] :out "UTF-8" :dir nil :env nil} (parse-args ["ls"])
+ {:cmd ["ls" "-l"] :out "UTF-8" :dir nil :env nil} (parse-args ["ls" "-l"])
+ {:cmd ["ls"] :out "ISO-8859-1" :dir nil :env nil} (parse-args ["ls" :out "ISO-8859-1"])
+))
+
+(deftest test-with-sh-dir
+ (are [x y] (= x y)
+ nil *sh-dir*
+ "foo" (with-sh-dir "foo" *sh-dir*)))
+
+(deftest test-with-sh-env
+ (are [x y] (= x y)
+ nil *sh-env*
+ {:KEY "VAL"} (with-sh-env {:KEY "VAL"} *sh-env*)))
+
+(deftest test-as-env-string
+ (are [x y] (= x y)
+ nil (as-env-string nil)
+ ["FOO=BAR"] (seq (as-env-string {"FOO" "BAR"}))
+ ["FOO_SYMBOL=BAR"] (seq (as-env-string {'FOO_SYMBOL "BAR"}))
+ ["FOO_KEYWORD=BAR"] (seq (as-env-string {:FOO_KEYWORD "BAR"}))))
+
+
+(deftest test-as-file
+ (are [x y] (= x y)
+ (File. "foo") (as-file "foo")
+ nil (as-file nil)
+ (File. "bar") (as-file (File. "bar")))) \ No newline at end of file