rules_engine 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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)