From e6074cdb4d975b3708595452d4f907e8673f8c18 Mon Sep 17 00:00:00 2001 From: Clemens Date: Fri, 28 Oct 2022 12:42:19 +0200 Subject: [PATCH] Added integer-string? predicate --- src/main/cljc/dda/c4k_common/predicate.cljc | 6 ++++++ src/test/cljc/dda/c4k_common/predicate_test.cljc | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/cljc/dda/c4k_common/predicate.cljc b/src/main/cljc/dda/c4k_common/predicate.cljc index c76e9b5..da55f18 100644 --- a/src/main/cljc/dda/c4k_common/predicate.cljc +++ b/src/main/cljc/dda/c4k_common/predicate.cljc @@ -44,6 +44,12 @@ (fqdn-string? (first split-string)) (port-number? (edn/read-string (second split-string))))))) +(defn integer-string? + [input] + (and (string? input) + (some? (re-matches #"^\d+$" input)) + (integer? (edn/read-string input)))) + (defn string-sequence? [input] (and (sequential? input) diff --git a/src/test/cljc/dda/c4k_common/predicate_test.cljc b/src/test/cljc/dda/c4k_common/predicate_test.cljc index c91bb19..4ae1251 100644 --- a/src/test/cljc/dda/c4k_common/predicate_test.cljc +++ b/src/test/cljc/dda/c4k_common/predicate_test.cljc @@ -51,6 +51,15 @@ (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" "!"])))