| 1 | (ns leiningen.new.flibbertigibbet-test |
| 2 | (:require [clojure.test :refer :all] |
| 3 | [leiningen.new.flibbertigibbet :refer :all])) |
| 4 | |
| 5 | (defn safe-delete [file-path] |
| 6 | (if (.exists (clojure.java.io/file file-path)) |
| 7 | (try |
| 8 | (clojure.java.io/delete-file file-path) |
| 9 | (catch Exception e (str "exception: " (.getMessage e)))) |
| 10 | false)) |
| 11 | |
| 12 | (defn delete-directory [directory] |
| 13 | (let [contents (file-seq (clojure.java.io/file directory)) |
| 14 | delete-files (filter #(.isFile %) contents)] |
| 15 | (doseq [file delete-files] |
| 16 | (safe-delete (.getPath file))) |
| 17 | (safe-delete directory))) |
| 18 | |
| 19 | (deftest a-test |
| 20 | (testing "flibbertigibbet should advertise itself, so i know it works" |
| 21 | (is (= "Generating fresh 'lein new' flibbertigibbet project: projecta\n" |
| 22 | (with-out-str (flibbertigibbet "projecta")))) |
| 23 | (delete-directory "./projecta"))) |