rules_engine 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/VERSION +1 -1
  2. data/lib/rules_engine/rule/definition.rb +5 -2
  3. data/rails_generators/manifests/complex.rb +2 -5
  4. data/rails_generators/manifests/complex.yml +2 -5
  5. data/rails_generators/manifests/simple.yml +1 -1
  6. data/rails_generators/templates/app/controllers/re_plans_controller.rb +1 -1
  7. data/rails_generators/templates/app/controllers/re_workflow_rules_controller.rb +1 -3
  8. data/rails_generators/templates/app/models/re_rule.rb +13 -9
  9. data/rails_generators/templates/app/models/re_rule_expected_outcome.rb +2 -0
  10. data/rails_generators/templates/app/rules/complex.rb +4 -4
  11. data/rails_generators/templates/app/rules/simple.rb +8 -8
  12. data/rails_generators/templates/app/views/re_rule_definitions/complex/_edit.html.erb +1 -7
  13. data/rails_generators/templates/app/views/re_rule_definitions/complex/_form.html.erb +76 -0
  14. data/rails_generators/templates/app/views/re_rule_definitions/complex/{_word.html.erb → _form_word.html.erb} +0 -0
  15. data/rails_generators/templates/app/views/re_rule_definitions/complex/_help.html.erb +1 -1
  16. data/rails_generators/templates/app/views/re_rule_definitions/complex/_new.html.erb +1 -7
  17. data/rails_generators/templates/app/views/re_rule_definitions/simple/_edit.html.erb +1 -1
  18. data/rails_generators/templates/app/views/re_rule_definitions/simple/_form.html.erb +16 -7
  19. data/rails_generators/templates/app/views/re_rule_definitions/simple/_help.html.erb +1 -1
  20. data/rails_generators/templates/app/views/re_rule_definitions/simple/_new.html.erb +1 -1
  21. data/rails_generators/templates/app/views/re_workflows/_rule_change.html.erb +3 -3
  22. data/rails_generators/templates/app/views/re_workflows/_rule_show.html.erb +3 -3
  23. data/rails_generators/templates/doc/README.rules_engine +1 -1
  24. data/rails_generators/templates/spec/controllers/re_plans_controller_spec.rb +259 -183
  25. data/rails_generators/templates/spec/lib/rules/complex_spec.rb +67 -13
  26. data/rails_generators/templates/spec/lib/rules/simple_spec.rb +104 -54
  27. data/rails_generators/templates/spec/models/re_plan_spec.rb +1 -1
  28. data/rails_generators/templates/spec/models/re_rule_spec.rb +23 -18
  29. data/rails_generators/templates/spec/models/re_workflow_spec.rb +1 -1
  30. data/rails_generators/templates/spec/support/rules_engine_blueprints.rb +9 -1
  31. data/spec/railsenv/log/debug.log +592 -0
  32. data/spec/railsenv/log/test.log +52 -0
  33. data/spec/rules_engine/discovery_spec.rb +0 -1
  34. data/spec/rules_engine/rule/definition_spec.rb +8 -4
  35. metadata +6 -9
  36. data/rails_generators/templates/app/views/re_rule_definitions/complex/_script.html.erb +0 -25
  37. data/rails_generators/templates/app/views/re_rule_definitions/complex/_title.html.erb +0 -7
  38. data/rails_generators/templates/app/views/re_rule_definitions/complex/_words.html.erb +0 -16
  39. data/rails_generators/templates/app/views/re_rule_definitions/complex/_workflow.html.erb +0 -22
@@ -1,10 +1,14 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
+ def valid_<%=rule_name%>_rule_data
4
+ '["Rule Title", ["word one", "word two"], "start_workflow", "Other Workflow"]'
5
+ end
6
+
3
7
  describe RulesEngine::Rule::<%=rule_class%> do
4
8
 
5
9
  def valid_attributes
6
10
  {
7
- :<%=rule_name%>_title => 'Valid Title',
11
+ :<%=rule_name%>_title => 'Another Title',
8
12
  :<%=rule_name%>_words => {
9
13
  "1" => { "word" => 'first word' },
10
14
  "2" => { "word" => 'second word' }
@@ -12,10 +16,6 @@ describe RulesEngine::Rule::<%=rule_class%> do
12
16
  }
13
17
  end
14
18
 
15
- def valid_json_data
16
- '["Rule Title", ["one", "two"], "start_workflow", "Other Pipeline"]'
17
- end
18
-
19
19
  it "should be discoverable" do
20
20
  RulesEngine::Discovery.rule_class("RulesEngine::Rule::<%=rule_class%>").should == RulesEngine::Rule::<%=rule_class%>
21
21
  end
@@ -45,7 +45,7 @@ describe RulesEngine::Rule::<%=rule_class%> do
45
45
  describe "setting the rule data" do
46
46
  before(:each) do
47
47
  @<%=rule_name%> = RulesEngine::Rule::<%=rule_class%>.new
48
- @<%=rule_name%>.data = valid_json_data
48
+ @<%=rule_name%>.data = valid_<%=rule_name%>_rule_data
49
49
  end
50
50
 
51
51
  describe "the json data is valid" do
@@ -58,7 +58,7 @@ describe RulesEngine::Rule::<%=rule_class%> do
58
58
  end
59
59
 
60
60
  it "should set the words" do
61
- @<%=rule_name%>.words.should == ["one", "two"]
61
+ @<%=rule_name%>.words.should == ["word one", "word two"]
62
62
  end
63
63
 
64
64
  it "should set the workflow_action" do
@@ -66,7 +66,7 @@ describe RulesEngine::Rule::<%=rule_class%> do
66
66
  end
67
67
 
68
68
  it "should set the workflow" do
69
- @<%=rule_name%>.workflow.should == "Other Pipeline"
69
+ @<%=rule_name%>.workflow.should == "Other Workflow"
70
70
  end
71
71
  end
72
72
 
@@ -114,11 +114,11 @@ describe RulesEngine::Rule::<%=rule_class%> do
114
114
  describe "the data" do
115
115
  it "should be converted to a json string" do
116
116
  <%=rule_name%> = RulesEngine::Rule::<%=rule_class%>.new
117
- <%=rule_name%>.should_receive(:title).and_return(["mock title"])
117
+ <%=rule_name%>.should_receive(:title).and_return("mock title")
118
118
  <%=rule_name%>.should_receive(:words).and_return(["one", "two"])
119
- <%=rule_name%>.should_receive(:workflow_action).and_return(["workflow action"])
120
- <%=rule_name%>.should_receive(:workflow).and_return(["workflow"])
121
- <%=rule_name%>.data.should == '[["mock title"],["one","two"],["workflow action"],["workflow"]]'
119
+ <%=rule_name%>.should_receive(:workflow_action).and_return("workflow action")
120
+ <%=rule_name%>.should_receive(:workflow).and_return("workflow")
121
+ <%=rule_name%>.data.should == '["mock title",["one","two"],"workflow action","workflow"]'
122
122
  end
123
123
  end
124
124
 
@@ -169,7 +169,7 @@ describe RulesEngine::Rule::<%=rule_class%> do
169
169
  describe "setting the <%=rule_name%>_title" do
170
170
  it "should set the title" do
171
171
  @<%=rule_name%>.attributes = valid_attributes
172
- @<%=rule_name%>.title.should == 'Valid Title'
172
+ @<%=rule_name%>.title.should == 'Another Title'
173
173
  end
174
174
 
175
175
  it "should not be valid if the '<%=rule_name%>_title' attribute is missing" do
@@ -329,3 +329,57 @@ describe RulesEngine::Rule::<%=rule_class%> do
329
329
  end
330
330
  end
331
331
  end
332
+
333
+ describe ReWorkflowRulesController, :type => :controller do
334
+ integrate_views
335
+
336
+ before(:each) do
337
+ controller.instance_eval { flash.stub!(:sweep) }
338
+
339
+ RulesEngine::Discovery.discover!
340
+
341
+ controller.stub!(:rules_engine_reader_access_required).and_return(true)
342
+ controller.stub!(:rules_engine_editor_access_required).and_return(true)
343
+
344
+ @re_workflow = ReWorkflow.make
345
+ ReWorkflow.stub!(:find).and_return(@re_workflow)
346
+ end
347
+
348
+ describe "<%=rule_name%> rule help" do
349
+ it "should assign the <%=rule_name%> rule class" do
350
+ get :help, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
351
+ assigns[:rule_class].should == RulesEngine::Rule::<%=rule_class%>
352
+ end
353
+ end
354
+
355
+ describe "new" do
356
+ it "show the new form" do
357
+ get :new, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
358
+ response.should have_tag("form#re_rule_new_form") do
359
+ with_tag("input#<%=rule_name%>_title")
360
+ with_tag("input#<%=rule_name%>_words_0_word")
361
+ with_tag("select#<%=rule_name%>_workflow_action")
362
+ with_tag("input#<%=rule_name%>_workflow")
363
+ end
364
+ end
365
+ end
366
+
367
+ describe "edit" do
368
+ it "show the edit form" do
369
+ re_rule = ReRule.make(:re_workflow_id => @re_workflow.id,
370
+ :rule_class_name => "RulesEngine::Rule::<%=rule_class%>",
371
+ :data => valid_<%=rule_name%>_rule_data)
372
+ ReRule.stub!(:find).and_return(re_rule)
373
+
374
+ get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
375
+ response.should have_tag("form#re_rule_edit_form") do
376
+ with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')
377
+ with_tag("input#<%=rule_name%>_words_0_word", :value => 'word one')
378
+ with_tag("input#<%=rule_name%>_words_1_word", :value => 'word two')
379
+ with_tag("select#<%=rule_name%>_workflow_action", :value => 'start_workflow')
380
+ with_tag("input#<%=rule_name%>_workflow", :value => 'Other Workflow')
381
+ end
382
+ end
383
+ end
384
+
385
+ end
@@ -1,18 +1,18 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
+ def valid_<%=rule_name%>_rule_data
4
+ '["Rule Title", "Rule Description"]'
5
+ end
6
+
3
7
  describe RulesEngine::Rule::Simple do
4
8
 
5
9
  def valid_attributes
6
10
  {
7
- :rule_<%=rule_name%>_title => 'Valid Title'
8
- # :rule_<%=rule_name%>_description => 'Valid Description'
11
+ :<%=rule_name%>_title => 'Rule Title',
12
+ :<%=rule_name%>_description => 'Rule Description'
9
13
  }
10
14
  end
11
15
 
12
- def valid_json_data
13
- '["Valid Title", "Valid Description"]'
14
- end
15
-
16
16
  it "should be discoverable" do
17
17
  RulesEngine::Discovery.rule_class("RulesEngine::Rule::Simple").should == RulesEngine::Rule::Simple
18
18
  end
@@ -26,50 +26,50 @@ describe RulesEngine::Rule::Simple do
26
26
  RulesEngine::Rule::Simple.options[:display_name].should == "Simple"
27
27
  end
28
28
 
29
- it "should have the help template of '/re_rule_definitions/rule_<%=rule_name%>/help'" do
30
- RulesEngine::Rule::Simple.options[:help_partial].should == '/re_rule_definitions/rule_<%=rule_name%>/help'
29
+ it "should have the help template of '/re_rule_definitions/<%=rule_name%>/help'" do
30
+ RulesEngine::Rule::Simple.options[:help_partial].should == '/re_rule_definitions/<%=rule_name%>/help'
31
31
  end
32
32
 
33
- it "should have the new template of '/re_rule_definitions/rule_<%=rule_name%>/new'" do
34
- RulesEngine::Rule::Simple.options[:new_partial].should == '/re_rule_definitions/rule_<%=rule_name%>/new'
33
+ it "should have the new template of '/re_rule_definitions/<%=rule_name%>/new'" do
34
+ RulesEngine::Rule::Simple.options[:new_partial].should == '/re_rule_definitions/<%=rule_name%>/new'
35
35
  end
36
36
 
37
- it "should have the edit view partial template of '/re_rule_definitions/rule_<%=rule_name%>/edit'" do
38
- RulesEngine::Rule::Simple.options[:edit_partial].should == '/re_rule_definitions/rule_<%=rule_name%>/edit'
37
+ it "should have the edit view partial template of '/re_rule_definitions/<%=rule_name%>/edit'" do
38
+ RulesEngine::Rule::Simple.options[:edit_partial].should == '/re_rule_definitions/<%=rule_name%>/edit'
39
39
  end
40
40
  end
41
41
 
42
42
  describe "setting the rule data" do
43
43
  before(:each) do
44
- @rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
45
- @rule_<%=rule_name%>.data = valid_json_data
44
+ @<%=rule_name%> = RulesEngine::Rule::Simple.new
45
+ @<%=rule_name%>.data = valid_<%=rule_name%>_rule_data
46
46
  end
47
47
 
48
48
  describe "the data is valid" do
49
49
  it "should be valid" do
50
- @rule_<%=rule_name%>.should be_valid
50
+ @<%=rule_name%>.should be_valid
51
51
  end
52
52
 
53
53
  it "should set the title" do
54
- @rule_<%=rule_name%>.title.should == "Valid Title"
54
+ @<%=rule_name%>.title.should == "Rule Title"
55
55
  end
56
56
 
57
57
  it "should set the description" do
58
- @rule_<%=rule_name%>.description.should == "Valid Description"
58
+ @<%=rule_name%>.description.should == "Rule Description"
59
59
  end
60
60
  end
61
61
 
62
62
  describe "the data is nil" do
63
63
  it "should set the title to nil" do
64
- @rule_<%=rule_name%>.title.should_not be_nil
65
- @rule_<%=rule_name%>.data = nil
66
- @rule_<%=rule_name%>.title.should be_nil
64
+ @<%=rule_name%>.title.should_not be_nil
65
+ @<%=rule_name%>.data = nil
66
+ @<%=rule_name%>.title.should be_nil
67
67
  end
68
68
 
69
69
  it "should set the description to nil" do
70
- @rule_<%=rule_name%>.title.should_not be_nil
71
- @rule_<%=rule_name%>.data = nil
72
- @rule_<%=rule_name%>.description.should be_nil
70
+ @<%=rule_name%>.title.should_not be_nil
71
+ @<%=rule_name%>.data = nil
72
+ @<%=rule_name%>.description.should be_nil
73
73
  end
74
74
  end
75
75
  end
@@ -77,69 +77,69 @@ describe RulesEngine::Rule::Simple do
77
77
  describe "the summary" do
78
78
  describe "description set" do
79
79
  it "should be the rule description" do
80
- rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
81
- rule_<%=rule_name%>.should_receive(:description).and_return("mock description")
82
- rule_<%=rule_name%>.summary.should == "mock description"
80
+ <%=rule_name%> = RulesEngine::Rule::Simple.new
81
+ <%=rule_name%>.should_receive(:description).and_return("mock description")
82
+ <%=rule_name%>.summary.should == "mock description"
83
83
  end
84
84
  end
85
85
  describe "description not set" do
86
86
  it "should be Does Nothing" do
87
- rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
88
- rule_<%=rule_name%>.should_receive(:description).and_return(nil)
89
- rule_<%=rule_name%>.summary.should == "Does Nothing"
87
+ <%=rule_name%> = RulesEngine::Rule::Simple.new
88
+ <%=rule_name%>.should_receive(:description).and_return(nil)
89
+ <%=rule_name%>.summary.should == "Does Nothing"
90
90
  end
91
91
  end
92
92
  end
93
93
 
94
94
  describe "the data" do
95
95
  it "should be converted to a json string" do
96
- rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
97
- rule_<%=rule_name%>.should_receive(:title).and_return("mock title")
98
- rule_<%=rule_name%>.should_receive(:description).and_return("mock description")
99
- rule_<%=rule_name%>.data.should == '["mock title","mock description"]'
96
+ <%=rule_name%> = RulesEngine::Rule::Simple.new
97
+ <%=rule_name%>.should_receive(:title).and_return("mock title")
98
+ <%=rule_name%>.should_receive(:description).and_return("mock description")
99
+ <%=rule_name%>.data.should == '["mock title","mock description"]'
100
100
  end
101
101
  end
102
102
 
103
103
  describe "the expected_outcomes" do
104
104
  it "should be outcome next" do
105
- rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
106
- rule_<%=rule_name%>.expected_outcomes.should == [:outcome => RulesEngine::Rule::Outcome::NEXT]
105
+ <%=rule_name%> = RulesEngine::Rule::Simple.new
106
+ <%=rule_name%>.expected_outcomes.should == [:outcome => RulesEngine::Rule::Outcome::NEXT]
107
107
  end
108
108
  end
109
109
 
110
110
  describe "setting the rule attributes" do
111
111
  before(:each) do
112
- @rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
112
+ @<%=rule_name%> = RulesEngine::Rule::Simple.new
113
113
  end
114
114
 
115
115
  it "should be valid with valid attributes" do
116
- @rule_<%=rule_name%>.attributes = valid_attributes
117
- @rule_<%=rule_name%>.should be_valid
116
+ @<%=rule_name%>.attributes = valid_attributes
117
+ @<%=rule_name%>.should be_valid
118
118
  end
119
119
 
120
- describe "setting the rule_<%=rule_name%>_title" do
120
+ describe "setting the <%=rule_name%>_title" do
121
121
  it "should set the title" do
122
- @rule_<%=rule_name%>.attributes = valid_attributes
123
- @rule_<%=rule_name%>.title.should == 'Valid Title'
122
+ @<%=rule_name%>.attributes = valid_attributes
123
+ @<%=rule_name%>.title.should == 'Rule Title'
124
124
  end
125
125
 
126
- it "should not be valid if the 'rule_<%=rule_name%>_title' attribute is missing" do
127
- @rule_<%=rule_name%>.attributes = valid_attributes.except(:rule_<%=rule_name%>_title)
128
- @rule_<%=rule_name%>.should_not be_valid
129
- @rule_<%=rule_name%>.errors.should include(:rule_<%=rule_name%>_title)
126
+ it "should not be valid if the '<%=rule_name%>_title' attribute is missing" do
127
+ @<%=rule_name%>.attributes = valid_attributes.except(:<%=rule_name%>_title)
128
+ @<%=rule_name%>.should_not be_valid
129
+ @<%=rule_name%>.errors.should include(:<%=rule_name%>_title)
130
130
  end
131
131
 
132
- it "should not be valid if the 'rule_<%=rule_name%>_title' attribute is blank" do
133
- @rule_<%=rule_name%>.attributes = valid_attributes.merge(:rule_<%=rule_name%>_title => "")
134
- @rule_<%=rule_name%>.should_not be_valid
135
- @rule_<%=rule_name%>.errors.should include(:rule_<%=rule_name%>_title)
132
+ it "should not be valid if the '<%=rule_name%>_title' attribute is blank" do
133
+ @<%=rule_name%>.attributes = valid_attributes.merge(:<%=rule_name%>_title => "")
134
+ @<%=rule_name%>.should_not be_valid
135
+ @<%=rule_name%>.errors.should include(:<%=rule_name%>_title)
136
136
  end
137
137
  end
138
138
 
139
- describe "setting the rule_<%=rule_name%>_description" do
139
+ describe "setting the <%=rule_name%>_description" do
140
140
  it "should set the description" do
141
- @rule_<%=rule_name%>.attributes = valid_attributes.merge(:rule_<%=rule_name%>_description => 'Valid Description')
142
- @rule_<%=rule_name%>.description.should == 'Valid Description'
141
+ @<%=rule_name%>.attributes = valid_attributes.merge(:<%=rule_name%>_description => 'Rule Description')
142
+ @<%=rule_name%>.description.should == 'Rule Description'
143
143
  end
144
144
  end
145
145
  end
@@ -154,8 +154,58 @@ describe RulesEngine::Rule::Simple do
154
154
 
155
155
  describe "processing the rule" do
156
156
  it "should do nothing" do
157
- @rule_<%=rule_name%> = RulesEngine::Rule::Simple.new
158
- @rule_<%=rule_name%>.process(1001, {}).outcome.should == RulesEngine::Rule::Outcome::NEXT
157
+ @<%=rule_name%> = RulesEngine::Rule::Simple.new
158
+ @<%=rule_name%>.process(1001, {}).outcome.should == RulesEngine::Rule::Outcome::NEXT
159
159
  end
160
160
  end
161
161
  end
162
+
163
+
164
+ describe ReWorkflowRulesController, :type => :controller do
165
+ integrate_views
166
+
167
+ before(:each) do
168
+ controller.instance_eval { flash.stub!(:sweep) }
169
+
170
+ RulesEngine::Discovery.discover!
171
+
172
+ controller.stub!(:rules_engine_reader_access_required).and_return(true)
173
+ controller.stub!(:rules_engine_editor_access_required).and_return(true)
174
+
175
+ @re_workflow = ReWorkflow.make
176
+ ReWorkflow.stub!(:find).and_return(@re_workflow)
177
+ end
178
+
179
+ describe "help" do
180
+ it "should assign the <%=rule_name%> rule class" do
181
+ get :help, :rule_class_name => "RulesEngine::Rule::Simple"
182
+ assigns[:rule_class].should == RulesEngine::Rule::Simple
183
+ end
184
+ end
185
+
186
+ describe "new" do
187
+ it "show the new form" do
188
+ get :new, :rule_class_name => "RulesEngine::Rule::Simple"
189
+ response.should have_tag("form#re_rule_new_form") do
190
+ with_tag("input#<%=rule_name%>_title")
191
+ with_tag("input#<%=rule_name%>_description")
192
+ end
193
+ end
194
+ end
195
+
196
+ describe "edit" do
197
+ it "show the edit form" do
198
+ re_rule = ReRule.make(:re_workflow_id => @re_workflow.id,
199
+ :rule_class_name => "RulesEngine::Rule::Simple",
200
+ :data => valid_<%=rule_name%>_rule_data)
201
+ ReRule.stub!(:find).and_return(re_rule)
202
+
203
+ get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::Simple"
204
+ response.should have_tag("form#re_rule_edit_form") do
205
+ with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')
206
+ with_tag("input#<%=rule_name%>_description", :value => 'Rule Description')
207
+ end
208
+ end
209
+ end
210
+
211
+ end
@@ -4,7 +4,7 @@ describe RePlan do
4
4
  def valid_attributes
5
5
  {
6
6
  :code => "AA MOCK",
7
- :title => "Mock Title"
7
+ :title => "Rule Title"
8
8
  }
9
9
  end
10
10
 
@@ -4,7 +4,7 @@ describe ReRule do
4
4
  def valid_attributes
5
5
  {
6
6
  :rule_class_name => "MockRuleClass",
7
- :title => "Mock Title",
7
+ :title => "Rule Title",
8
8
  :summary => "Mock Summary",
9
9
  :data => '["Rule Title", ["one", "two"], "start_workflow", "Other Pipeline"]'
10
10
  }
@@ -15,8 +15,9 @@ describe ReRule do
15
15
  @rule.stub!(:title=)
16
16
  @rule.stub!(:summary=)
17
17
  @rule.stub!(:data=)
18
- @rule.stub!(:after_add_to_workflow)
19
- @rule.stub!(:before_remove_from_workflow)
18
+ @rule.stub!(:before_create)
19
+ @rule.stub!(:before_update)
20
+ @rule.stub!(:before_destroy)
20
21
  @rule.stub!(:expected_outcomes).and_return([])
21
22
  @rule.stub!(:valid?).and_return(true)
22
23
  @rule_class = mock("MockRuleClass")
@@ -153,31 +154,35 @@ describe ReRule do
153
154
  end
154
155
  end
155
156
 
156
- describe "after saving a re_rule" do
157
+ describe "after creating a re_rule" do
157
158
  it "should notify the rule" do
158
159
  re_rule = ReRule.new(valid_attributes)
159
160
  re_rule.stub!(:re_workflow).and_return(@re_workflow)
160
161
 
161
- @re_workflow.stub!(:code).and_return('1001')
162
- re_rule.stub!(:rule).and_return(@rule)
163
-
164
- updated_code = nil
165
- @rule.should_receive(:after_add_to_workflow) do |re_workflow_code|
166
- updated_code = re_workflow_code
167
- end
162
+ @rule.should_receive(:before_create)
163
+ re_rule.save
164
+ end
165
+ end
166
+
167
+ describe "after updating a re_rule" do
168
+ it "should notify the rule" do
169
+ re_rule = ReRule.new(valid_attributes)
170
+ re_rule.stub!(:re_workflow).and_return(@re_workflow)
171
+ re_rule.save
172
+
173
+ re_rule.title = "New Title"
174
+ @rule.should_receive(:before_update)
168
175
  re_rule.save
169
- updated_code.should == '1001'
170
176
  end
171
177
  end
172
178
 
173
179
  describe "before destroying a re_rule" do
174
180
  it "should notify the rule" do
175
- @re_workflow = mock('re_workflow', :code => "1001", :valid? => true)
176
- @re_rule = ReRule.new(valid_attributes)
177
- @re_rule.stub!(:re_workflow).and_return(@re_workflow)
181
+ re_rule = ReRule.new(valid_attributes)
182
+ re_rule.stub!(:re_workflow).and_return(@re_workflow)
178
183
 
179
- @rule.should_receive(:before_remove_from_workflow).with("1001")
180
- @re_rule.destroy
184
+ @rule.should_receive(:before_destroy)
185
+ re_rule.destroy
181
186
  end
182
187
  end
183
188
 
@@ -263,7 +268,7 @@ describe ReRule do
263
268
 
264
269
  describe "moving items in a list" do
265
270
  it "should move a rule down in the list" do
266
- re_workflow = ReWorkflow.create!(:code => "AA-MOCK",:title => "Mock Title")
271
+ re_workflow = ReWorkflow.create!(:code => "AA-MOCK",:title => "Rule Title")
267
272
 
268
273
  re_rule_1 = ReRule.new(valid_attributes)
269
274
  re_rule_2 = ReRule.new(valid_attributes)