You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.1 KiB
Clojure
80 lines
3.1 KiB
Clojure
(ns dda.c4k-common.predicate-test
|
|
(:require
|
|
#?(:clj [clojure.test :refer [deftest is are testing run-tests]]
|
|
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
|
|
[dda.c4k-common.predicate :as cut]))
|
|
|
|
(deftest test-bash-env-string?
|
|
(is (true? (cut/bash-env-string? "abcd")))
|
|
(is (false? (cut/bash-env-string? "$abdc")))
|
|
(is (false? (cut/bash-env-string? "\"abdc"))))
|
|
|
|
(deftest test-fqdn-string?
|
|
(is (true? (cut/fqdn-string? "abc.test.de")))
|
|
(is (true? (cut/fqdn-string? "abc.def.fed.cba.abc.def.fed.cba")))
|
|
(is (true? (cut/fqdn-string? "123.456.de")))
|
|
(is (false? (cut/fqdn-string? "123.456.789")))
|
|
(is (false? (cut/fqdn-string? "test&test.de"))))
|
|
|
|
(deftest test-string-of-separated-by?
|
|
(is (true? (cut/string-of-separated-by? cut/bash-env-string? #":" "abcd")))
|
|
(is (true? (cut/string-of-separated-by? cut/bash-env-string? #":" "abcd:efgh")))
|
|
(is (false? (cut/string-of-separated-by? cut/bash-env-string? #":" "abcd:ef$gh")))
|
|
(is (true? (cut/string-of-separated-by? cut/fqdn-string? #"," "test.de,test-gmbh.de,test-llc.com")))
|
|
(is (false? (cut/string-of-separated-by? cut/fqdn-string? #"," "test.123,test.de"))))
|
|
|
|
(deftest test-letsencrypt-issuer?
|
|
(is (false? (cut/letsencrypt-issuer? "issuer")))
|
|
(is (true? (cut/letsencrypt-issuer? "staging")))
|
|
(is (true? (cut/letsencrypt-issuer? "prod"))))
|
|
|
|
(deftest test-map-or-seq?
|
|
(is (true? (cut/map-or-seq? {:a 1 :b 2})))
|
|
(is (true? (cut/map-or-seq? '(1 2 3))))
|
|
(is (false? (cut/map-or-seq? "1,2,3"))))
|
|
|
|
(deftest test-pvc-storage-class-name?
|
|
(is (true? (cut/pvc-storage-class-name? "manual")))
|
|
(is (true? (cut/pvc-storage-class-name? "local-path")))
|
|
(is (false? (cut/pvc-storage-class-name? "none"))))
|
|
|
|
(deftest test-port-number?
|
|
(is (true? (cut/port-number? 1)))
|
|
(is (true? (cut/port-number? 65535)))
|
|
(is (false? (cut/port-number? 0)))
|
|
(is (false? (cut/port-number? 65536)))
|
|
(is (false? (cut/port-number? "12345"))))
|
|
|
|
(deftest test-host-and-port-string?
|
|
(is (true? (cut/host-and-port-string? "test.de:1234")))
|
|
(is (false? (cut/host-and-port-string? "test.de,1234")))
|
|
(is (false? (cut/host-and-port-string? "test.123:1234")))
|
|
(is (false? (cut/host-and-port-string? "test.de:abc"))))
|
|
|
|
(deftest test-integer-string?
|
|
(is (true? (cut/integer-string? "1")))
|
|
(is (true? (cut/integer-string? "42")))
|
|
(is (false? (cut/integer-string? 42)))
|
|
(is (false? (cut/integer-string? "42.2")))
|
|
(is (false? (cut/integer-string? "4 2")))
|
|
(is (false? (cut/integer-string? "1e2")))
|
|
(is (false? (cut/integer-string? true))))
|
|
|
|
(deftest test-string-sequence?
|
|
(is (true? (cut/string-sequence? ["hallo" "welt" "!"])))
|
|
(is (false? (cut/string-sequence? ["hallo" 1 "welt" "!"])))
|
|
(is (false? (cut/string-sequence? "hallo welt!"))))
|
|
|
|
(deftest test-int-gt-n?
|
|
(is (not (cut/int-gt-n? 5 0)))
|
|
(is (not (cut/int-gt-n? 5 "s")))
|
|
(is (not (cut/int-gt-n? 0 0)))
|
|
(is (cut/int-gt-n? 5 6))
|
|
(is ((partial cut/int-gt-n? 5) 10))
|
|
(is (not ((partial cut/int-gt-n? 5) 4))))
|
|
|
|
(deftest test-str-or-number?
|
|
(is (cut/str-or-number? "string"))
|
|
(is (cut/str-or-number? 42))
|
|
(is (not (cut/str-or-number? []))))
|