From 7dcc5894956bdf52b3d0dd45c8819b39bfd11386 Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Thu, 23 Jun 2016 11:56:29 -0400 Subject: [PATCH] added multi-transform tests --- test/com/rpl/specter/core_test.cljx | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/test/com/rpl/specter/core_test.cljx b/test/com/rpl/specter/core_test.cljx index dd9c344..763f8b3 100644 --- a/test/com/rpl/specter/core_test.cljx +++ b/test/com/rpl/specter/core_test.cljx @@ -8,7 +8,8 @@ :refer [paramsfn defprotocolpath defnav extend-protocolpath nav declarepath providepath select select-one select-one! select-first transform setval replace-in defnavconstructor - select-any selected-any? collected? traverse]]) + select-any selected-any? collected? traverse + multi-transform]]) (:use #+clj [clojure.test :only [deftest is]] #+clj [clojure.test.check.clojure-test :only [defspec]] @@ -17,7 +18,8 @@ :only [paramsfn defprotocolpath defnav extend-protocolpath nav declarepath providepath select select-one select-one! select-first transform setval replace-in defnavconstructor - select-any selected-any? collected? traverse]] + select-any selected-any? collected? traverse + multi-transform]] ) @@ -1304,3 +1306,24 @@ (deftest setval-vals-collection-test (is (= 2 (setval s/VAL 2 :a)))) + +(defspec multi-transform-test + (for-all+ + [kw1 gen/keyword + kw2 gen/keyword + m (limit-size 5 (gen-map-with-keys gen/keyword gen/int kw1 kw2))] + (= (->> m (transform [(s/keypath kw1) s/VAL] +) (transform (s/keypath kw2) dec)) + (multi-transform + (s/multi-path [(s/keypath kw1) s/VAL (s/terminal +)] + [(s/keypath kw2) (s/terminal dec)]) + m + )))) + +(deftest multi-transform-overrun-error + (is (thrown? Exception (multi-transform s/STAY 3))) + ) + +(deftest terminal-val-test + (is (= 3 (multi-transform (s/terminal-val 3) 2))) + (is (= 3 (multi-transform [s/VAL (s/terminal-val 3)] 2))) + )