aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/test_contrib/with_ns_test.clj
blob: 09137bc0a5f06339f6473f282d015b32aee66d96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(ns clojure.contrib.test-contrib.with-ns-test
  (:use clojure.test
	clojure.contrib.with-ns
        [clojure.contrib.seq-utils :only (includes?)]))

(deftest test-namespace-gets-removed
  (let [all-ns-names (fn [] (map #(.name %) (all-ns)))]
    (testing "unexceptional return"
      (let [ns-name (with-temp-ns (ns-name *ns*))]
        (is (not (includes? (all-ns-names) ns-name)))))
    (testing "when an exception is thrown"
      (let [ns-name-str
            (try
             (with-temp-ns
               (throw (RuntimeException. (str (ns-name *ns*)))))
             (catch clojure.lang.Compiler$CompilerException e
               (-> e .getCause .getMessage)))]
        (is (re-find #"^sym.*$" ns-name-str))
        (is (not (includes? (all-ns-names) (symbol ns-name-str))))))))