diff src/clojure/test_clojure/java/shell.clj @ 10:ef7dbbd6452c

added clojure source goodness
author Robert McIntyre <rlm@mit.edu>
date Sat, 21 Aug 2010 06:25:44 -0400
parents
children
line wrap: on
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/clojure/test_clojure/java/shell.clj	Sat Aug 21 06:25:44 2010 -0400
     1.3 @@ -0,0 +1,41 @@
     1.4 +;   Copyright (c) Rich Hickey. All rights reserved.
     1.5 +;   The use and distribution terms for this software are covered by the
     1.6 +;   Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
     1.7 +;   which can be found in the file epl-v10.html at the root of this distribution.
     1.8 +;   By using this software in any fashion, you are agreeing to be bound by
     1.9 +;   the terms of this license.
    1.10 +;   You must not remove this notice, or any other, from this software.
    1.11 +
    1.12 +(ns clojure.test-clojure.java.shell
    1.13 +  (:use clojure.test
    1.14 +	[clojure.java.shell :as sh])
    1.15 +  (:import (java.io File)))
    1.16 +
    1.17 +(def platform-enc (.name (java.nio.charset.Charset/defaultCharset)))
    1.18 +(def default-enc "UTF-8")
    1.19 +
    1.20 +(deftest test-parse-args
    1.21 +  (are [x y] (= x y)
    1.22 +       [[] {:in-enc default-enc :out-enc default-enc :dir nil :env nil}] (#'sh/parse-args [])
    1.23 +       [["ls"] {:in-enc default-enc :out-enc default-enc :dir nil :env nil}] (#'sh/parse-args ["ls"])
    1.24 +       [["ls" "-l"] {:in-enc default-enc :out-enc default-enc :dir nil :env nil}] (#'sh/parse-args ["ls" "-l"])
    1.25 +       [["ls"] {:in-enc default-enc :out-enc "ISO-8859-1" :dir nil :env nil}] (#'sh/parse-args ["ls" :out-enc "ISO-8859-1"])
    1.26 +       [[] {:in-enc platform-enc :out-enc platform-enc :dir nil :env nil}] (#'sh/parse-args [:in-enc platform-enc :out-enc platform-enc])))
    1.27 +  
    1.28 +(deftest test-with-sh-dir
    1.29 +  (are [x y] (= x y)
    1.30 +    nil *sh-dir*
    1.31 +    "foo" (with-sh-dir "foo" *sh-dir*)))
    1.32 +
    1.33 +(deftest test-with-sh-env
    1.34 +  (are [x y] (= x y)
    1.35 +    nil *sh-env*
    1.36 +    {:KEY "VAL"} (with-sh-env {:KEY "VAL"} *sh-env*)))
    1.37 +
    1.38 +(deftest test-as-env-strings
    1.39 +  (are [x y] (= x y)
    1.40 +    nil (#'sh/as-env-strings nil)
    1.41 +    ["FOO=BAR"] (seq (#'sh/as-env-strings {"FOO" "BAR"}))
    1.42 +    ["FOO_SYMBOL=BAR"] (seq (#'sh/as-env-strings {'FOO_SYMBOL "BAR"}))
    1.43 +    ["FOO_KEYWORD=BAR"] (seq (#'sh/as-env-strings {:FOO_KEYWORD "BAR"}))))
    1.44 +