Added example test for compound predicates with and macro

This commit is contained in:
Mattias Holmqvist 2011-05-12 01:41:48 +02:00
parent cd87342800
commit 19672715e0
1 changed files with 14 additions and 3 deletions

View File

@ -21,9 +21,9 @@
(:use [org.jclouds.compute2] :reload-all)
(:use clojure.test)
(:import
org.jclouds.compute.domain.OsFamily
clojure.contrib.condition.Condition))
org.jclouds.compute.domain.OsFamily
clojure.contrib.condition.Condition
java.net.InetAddress))
(defmacro with-private-vars [[ns fns] & tests]
"Refers private fns from ns and runs tests in context. From users mailing
@ -75,6 +75,17 @@ list, Alan Dipert and MeikelBrandmeyer."
(destroy-nodes-matching *compute* #(= (.getGroup %) "fred"))
(is (terminated? (first (nodes-in-group *compute* "fred")))))
(defn localhost? [node]
"Returns true if the localhost address is in the node's private ips"
(seq? (some #(= (InetAddress/getLocalHost) %) (private-ips node))))
(deftest compound-predicate-test
(is (create-node *compute* "my-group" (build-template *compute* {})))
(is (= 0 (count (nodes-with-details-matching *compute* #(and (suspended? %) (not (localhost? %)))))))
(is (= 0 (count (nodes-with-details-matching *compute* #(and (suspended? %) (localhost? %))))))
(is (= 0 (count (nodes-with-details-matching *compute* #(and (running? %) (localhost? %))))))
(is (= 1 (count (nodes-with-details-matching *compute* #(and (running? %) (not (localhost? %))))))))
(deftest build-template-test
(let [service (compute-service "stub" "user" "password")]
(testing "nullary"