1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
(ns digest-test
(:require [clojure.string :refer [lower-case includes?]]
[clojure.test :refer :all]
[digest :refer :all])
(:import java.io.File))
(deftest md5-test
(is (= (digest "md5" "foo") "acbd18db4cc2f85cedef654fccc4a4d8")))
(deftest sha-256-test
(is (= (sha-256 "foo")
"2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae")))
(deftest algorithms-test
(let [names (algorithms)]
(is (not (empty? names)))
(is (names "SHA-1"))))
(deftest utils-test
(for [name (algorithms)]
(dorun (is (ns-resolve *ns* (symbol (lower-case name)))))))
(deftest function-metadata-test
(is (includes? (:doc (meta #'sha-256))
"SHA-256"))
(is (= '([message])
(:arglists (meta #'md5)))))
(def ^:dynamic *logo-md5* "59ef6e166bab377a48a348be2ac46c15")
(def ^:dynamic *logo-sha256*
"ff83aa6a4f8597ef45742e4c4837f1964fa14bd64a950388bce0bfe987acbd32")
(deftest file-test
(let [f (File. "test/debian.png")]
(is (= (md5 f) *logo-md5*))
(is (= (sha-256 f) *logo-sha256*))))
; Just making sure that we don't explode on nil
(deftest nil-test
(md5 nil))
(deftest length-test
(is (= (sha (File. "test/length.txt"))
"007b65165b253172d054189e8e3175f3bcb9e28e")))
|