C0 code coverage information
Generated on Mon May 21 22:36:02 -0400 2007 with rcov 0.8.0
Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
1 require File.dirname(__FILE__) + '/../spec_helper'
2 require 'rools'
3
4 # to support csv test
5 class Hour
6 end
7
8 describe "Empty RuleSet" do
9 before(:each) do
10 @ruleset = Rools::RuleSet.new
11 end
12
13 after(:each) do
14 @ruleset = nil
15 end
16
17 it "should not contain any rules" do
18 @ruleset.get_rules.size == 0
19 end
20
21 it "should not contain any facts" do
22 @ruleset.get_facts.size == 0
23 end
24
25 it "responds to assert" do
26 @ruleset.should respond_to(:assert)
27 end
28
29 it "can assert with one or more parameters" do
30 obj1 = "heya"
31 obj2 = 2
32 #@ruleset.should_receive(:assert).with(obj1, obj2).and_return(Rools::RuleSet::PASS)
33 status = @ruleset.assert(obj1, obj2)
34 status.should equal(Rools::RuleSet::PASS)
35 end
36
37 it "responds to evaluate" do
38 @ruleset.should respond_to(:evaluate)
39 end
40
41 it "has null metrics" do
42 @ruleset.status == Rools::RuleSet::UNDETERMINED
43 @ruleset.num_executed == 0
44 @ruleset.num_evaluated == 0
45 end
46
47 it "can accept new facts programmatically and delete all facts" do
48 obj1 = "heya"
49 obj2 = 2
50 @ruleset.fact( obj1 )
51 @ruleset.fact( obj2 )
52
53 @ruleset.get_facts.should have(2).facts
54 @ruleset.delete_facts
55 @ruleset.get_facts.should have(0).facts
56 end
57
58 it "can accept fact stements in a rule set" do
59 @ruleset = Rools::RuleSet.new do
60 facts 'Countries' do
61 ["China", "USSR", "France", "Great Britain", "USA"]
62 end
63 end
64 @ruleset.get_facts.should have(1).fact
65 end
66
67 it "can load an xml file" do
68 @ruleset.load_xml( "test/data/hello.xml")
69 @ruleset.get_rules.should have(1).rule
70 end
71
72 it "can load an rb file" do
73 @ruleset.load_rb( "test/data/hello.rb")
74 @ruleset.get_rules.should have(1).rule
75 end
76
77 it "can load a csv file" do
78 @ruleset.load_csv( "test/data/greetings.csv")
79 @ruleset.get_rules.should have(4).rules
80 end
81
82 it "can stop rule evaluation" do
83 ruleset = Rools::RuleSet.new do
84 rule 'Hello' do
85 parameter String
86 consequence { stop("Stop it") }
87 end
88 end
89 status = ruleset.assert "Hey"
90 status.should eql(Rools::RuleSet::PASS)
91 end
92
93 it "can fail rule evaluation" do
94 ruleset = Rools::RuleSet.new do
95 rule 'Hello' do
96 parameter String
97 consequence { fail("fail it") }
98 end
99 end
100 status = ruleset.assert "Hey"
101 status.should eql(Rools::RuleSet::FAIL)
102 end
103 end
Generated using the rcov code coverage analysis tool for Ruby version 0.8.0.