Created
November 24, 2014 09:54
-
-
Save paologf/1e9b7a0ea9ae5ad99a00 to your computer and use it in GitHub Desktop.
claratest project for clara_rules issue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns claratest.core | |
(:require [clara.rules :refer :all])) | |
(def clara_session (atom nil)) | |
(defquery get-all-run-request | |
"query to get all fact of type RunRequest" | |
[] | |
[?a <- :RunRequest]) | |
(defquery get-all-run-request-started | |
"query to get all fact of type RunRequest" | |
[] | |
[?a <- :RunRequestStarted]) | |
(defrule run-rule | |
[:RunRequest [{uuid :uuid desc :desc}] (= ?uuid uuid) (= ?desc desc)] | |
[:not [:RunRequestStarted [{uuid :uuid}] (= ?uuid uuid)]] | |
=> | |
(prn "RUNREQUEST" (query @clara_session get-all-run-request))) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defproject claratest "0.1.0-SNAPSHOT" | |
:description "FIXME: write description" | |
:url "http://example.com/FIXME" | |
:license {:name "Eclipse Public License" | |
:url "http://www.eclipse.org/legal/epl-v10.html"} | |
:dependencies [[org.clojure/clojure "1.6.0"] | |
[org.toomuchcode/clara-rules "0.6.2"]]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns claratest.core-test | |
(:require [clojure.test :refer :all] | |
[claratest.core :refer :all] | |
[clara.rules :refer :all] | |
)) | |
(deftest run-rule-test | |
(swap! | |
clara_session | |
(fn [s] | |
(mk-session 'claratest.core :fact-type-fn :fact-type :cache true))) | |
(swap! clara_session insert {:fact-type :RunRequest :uuid "1" :desc "ciccio"}) | |
(fire-rules @clara_session) | |
(is (= 1 (count (query @clara_session get-all-run-request)))) | |
(is (= 0 (count (query @clara_session get-all-run-request-started)))) | |
(time (Thread/sleep 1000)) | |
(swap! clara_session insert {:fact-type :RunRequestStarted :uuid "1" :retracted false}) | |
(fire-rules @clara_session) | |
(is (= 1 (count (query @clara_session get-all-run-request)))) | |
(is (= 1 (count (query @clara_session get-all-run-request-started)))) | |
(time (Thread/sleep 1000)) | |
(prn "REMOVING RUNREQUEST") | |
(swap! clara_session retract {:fact-type :RunRequest :uuid "1" :desc "ciccio"}) | |
(fire-rules @clara_session) | |
(is (= 0 (count (query @clara_session get-all-run-request)))) | |
(is (= 1 (count (query @clara_session get-all-run-request-started)))) | |
(time (Thread/sleep 1000)) | |
(prn "REMOVING RUNREQUESTSTARTED") | |
(swap! clara_session retract {:fact-type :RunRequestStarted :uuid "1"}) | |
(fire-rules @clara_session) | |
(is (= 0 (count (query @clara_session get-all-run-request)))) | |
(is (= 0 (count (query @clara_session get-all-run-request-started)))) | |
(time (Thread/sleep 1000)) | |
(fire-rules @clara_session) | |
(is (= 0 (count (query @clara_session get-all-run-request)))) | |
(is (= 0 (count (query @clara_session get-all-run-request-started)))) | |
(time (Thread/sleep 1000)) | |
(fire-rules @clara_session) | |
(time (Thread/sleep 1000)) | |
(fire-rules @clara_session) | |
(time (Thread/sleep 1000)) | |
(fire-rules @clara_session) | |
(time (Thread/sleep 1000)) | |
(fire-rules @clara_session)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment