transitions 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/.travis.yml +3 -1
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +7 -2
  6. data/README.md +1 -1
  7. data/Rakefile +4 -4
  8. data/lib/active_model/transitions.rb +8 -8
  9. data/lib/transitions/event.rb +15 -16
  10. data/lib/transitions/machine.rb +4 -5
  11. data/lib/transitions/presenter.rb +1 -1
  12. data/lib/transitions/state.rb +2 -1
  13. data/lib/transitions/state_transition.rb +2 -2
  14. data/lib/transitions/version.rb +1 -1
  15. data/lib/transitions.rb +10 -8
  16. data/test/active_record/test_active_record.rb +64 -66
  17. data/test/active_record/test_active_record_scopes.rb +7 -7
  18. data/test/active_record/test_active_record_timestamps.rb +27 -28
  19. data/test/active_record/test_custom_select.rb +3 -3
  20. data/test/event/test_event.rb +20 -20
  21. data/test/event/test_event_arguments.rb +3 -4
  22. data/test/event/test_event_being_fired.rb +4 -4
  23. data/test/event/test_event_checks.rb +5 -6
  24. data/test/helper.rb +1 -1
  25. data/test/machine/machine_template.rb +4 -4
  26. data/test/machine/test_available_states_listing.rb +1 -1
  27. data/test/machine/test_fire_event_machine.rb +5 -5
  28. data/test/machine/test_machine.rb +10 -10
  29. data/test/state/test_state.rb +16 -16
  30. data/test/state/test_state_predicate_method.rb +2 -2
  31. data/test/state_transition/test_state_transition.rb +11 -11
  32. data/test/state_transition/test_state_transition_event_failed_callback.rb +3 -3
  33. data/test/state_transition/test_state_transition_event_fired_callback.rb +3 -3
  34. data/test/state_transition/test_state_transition_guard_check.rb +14 -15
  35. data/test/state_transition/test_state_transition_on_transition_callback.rb +4 -4
  36. data/test/state_transition/test_state_transition_success_callback.rb +8 -8
  37. data/transitions.gemspec +16 -16
  38. metadata +4 -3
@@ -1,8 +1,8 @@
1
- require "helper"
1
+ require 'helper'
2
2
 
3
3
  class CreateTrafficLights < ActiveRecord::Migration
4
4
  def self.up
5
- create_table(:traffic_lights, :force => true) do |t|
5
+ create_table(:traffic_lights, force: true) do |t|
6
6
  t.string :state
7
7
  t.string :name
8
8
  t.string :power
@@ -22,7 +22,7 @@ end
22
22
  class TrafficLight < ActiveRecord::Base
23
23
  include ActiveModel::Transitions
24
24
 
25
- state_machine :auto_scopes => true do
25
+ state_machine auto_scopes: true do
26
26
  state :off, enter: :turn_power_on
27
27
 
28
28
  state :red
@@ -30,34 +30,34 @@ class TrafficLight < ActiveRecord::Base
30
30
  state :yellow
31
31
 
32
32
  event :red_on do
33
- transitions :to => :red, :from => [:yellow]
33
+ transitions to: :red, from: [:yellow]
34
34
  end
35
35
 
36
36
  event :green_on do
37
- transitions :to => :green, :from => [:red]
37
+ transitions to: :green, from: [:red]
38
38
  end
39
39
 
40
40
  event :yellow_on do
41
- transitions :to => :yellow, :from => [:green]
41
+ transitions to: :yellow, from: [:green]
42
42
  end
43
43
 
44
44
  event :reset do
45
- transitions :to => :red, :from => [:off]
45
+ transitions to: :red, from: [:off]
46
46
  end
47
47
  end
48
48
 
49
49
  def turn_power_on
50
- raise "the power should not have been on already" if power == "on"
51
- self.power = "on"
50
+ fail 'the power should not have been on already' if power == 'on'
51
+ self.power = 'on'
52
52
  end
53
53
  end
54
54
 
55
55
  class ValidatingTrafficLight < TrafficLight
56
- validate {|t| errors.add(:base, 'This TrafficLight will never validate after creation') unless t.new_record? }
56
+ validate { |t| errors.add(:base, 'This TrafficLight will never validate after creation') unless t.new_record? }
57
57
  end
58
58
 
59
59
  class ConditionalValidatingTrafficLight < TrafficLight
60
- validates(:name, :presence => true, :if => :red?)
60
+ validates(:name, presence: true, if: :red?)
61
61
  end
62
62
 
63
63
  class TestActiveRecord < Test::Unit::TestCase
@@ -66,31 +66,31 @@ class TestActiveRecord < Test::Unit::TestCase
66
66
  @light = TrafficLight.create!
67
67
  end
68
68
 
69
- test "new record has the initial state set" do
69
+ test 'new record has the initial state set' do
70
70
  @light = TrafficLight.new
71
- assert_equal "off", @light.state
71
+ assert_equal 'off', @light.state
72
72
  end
73
73
 
74
- test "new active records defaults current state to the initial state" do
74
+ test 'new active records defaults current state to the initial state' do
75
75
  assert_equal :off, @light.current_state
76
76
  end
77
77
 
78
- test "states initial state" do
78
+ test 'states initial state' do
79
79
  assert @light.off?
80
80
  assert_equal :off, @light.current_state
81
81
  end
82
82
 
83
- test "calls enter when setting the initial state" do
83
+ test 'calls enter when setting the initial state' do
84
84
  @new_light = TrafficLight.new
85
- assert_equal "on", @new_light.power
85
+ assert_equal 'on', @new_light.power
86
86
  end
87
87
 
88
- test "does not call enter when loading a persisted record" do
89
- assert_equal "on", @light.power
88
+ test 'does not call enter when loading a persisted record' do
89
+ assert_equal 'on', @light.power
90
90
  assert_nothing_raised { TrafficLight.find(@light.id) }
91
91
  end
92
92
 
93
- test "transition to a valid state" do
93
+ test 'transition to a valid state' do
94
94
  @light.reset
95
95
  assert @light.red?
96
96
  assert_equal :red, @light.current_state
@@ -100,42 +100,42 @@ class TestActiveRecord < Test::Unit::TestCase
100
100
  assert_equal :green, @light.current_state
101
101
  end
102
102
 
103
- test "transition does not persist state" do
103
+ test 'transition does not persist state' do
104
104
  @light.reset
105
105
  assert_equal :red, @light.current_state
106
106
  @light.reload
107
- assert_equal "off", @light.state
107
+ assert_equal 'off', @light.state
108
108
  end
109
109
 
110
- test "transition does persists state" do
110
+ test 'transition does persists state' do
111
111
  @light.reset!
112
112
  assert_equal :red, @light.current_state
113
113
  @light.reload
114
- assert_equal "red", @light.state
114
+ assert_equal 'red', @light.state
115
115
  end
116
116
 
117
- test "transition to an invalid state" do
117
+ test 'transition to an invalid state' do
118
118
  assert_raise(Transitions::InvalidTransition) { @light.yellow_on }
119
119
  assert_equal :off, @light.current_state
120
120
  end
121
121
 
122
- test "transition with wrong state will not validate" do
122
+ test 'transition with wrong state will not validate' do
123
123
  for s in @light.class.get_state_machine.states
124
124
  @light.state = s.name
125
125
  assert @light.valid?
126
126
  end
127
- @light.state = "invalid_one"
127
+ @light.state = 'invalid_one'
128
128
  assert_false @light.valid?
129
129
  end
130
130
 
131
- test "transition raises exception when model validation fails" do
132
- validating_light = ValidatingTrafficLight.create!(:name => 'Foobar')
131
+ test 'transition raises exception when model validation fails' do
132
+ validating_light = ValidatingTrafficLight.create!(name: 'Foobar')
133
133
  assert_raise(ActiveRecord::RecordInvalid) do
134
134
  validating_light.reset!
135
135
  end
136
136
  end
137
137
 
138
- test "state query method used in a validation condition" do
138
+ test 'state query method used in a validation condition' do
139
139
  validating_light = ConditionalValidatingTrafficLight.create!
140
140
  assert_raise(ActiveRecord::RecordInvalid) do
141
141
  validating_light.reset!
@@ -143,19 +143,19 @@ class TestActiveRecord < Test::Unit::TestCase
143
143
  assert(validating_light.off?)
144
144
  end
145
145
 
146
- test "reloading model resets current state" do
146
+ test 'reloading model resets current state' do
147
147
  @light.reset
148
148
  assert @light.red?
149
149
  @light.update_attribute(:state, 'green')
150
- assert @light.reload.green?, "reloaded state should come from database, not instance variable"
150
+ assert @light.reload.green?, 'reloaded state should come from database, not instance variable'
151
151
  end
152
152
 
153
- test "calling non-bang event updates state attribute" do
153
+ test 'calling non-bang event updates state attribute' do
154
154
  @light.reset!
155
155
  assert @light.red?
156
156
  @light.green_on
157
- assert_equal "green", @light.state
158
- assert_equal "red", @light.reload.state
157
+ assert_equal 'green', @light.state
158
+ assert_equal 'red', @light.reload.state
159
159
  end
160
160
  end
161
161
 
@@ -172,38 +172,36 @@ if ActiveRecord::VERSION::MAJOR == 3
172
172
  end
173
173
  end
174
174
 
175
- test "transition does persists state when state is protected" do
175
+ test 'transition does persists state when state is protected' do
176
176
  protected_light = @light_with_protected_state.create!
177
177
  protected_light.reset!
178
178
  assert_equal :red, protected_light.current_state
179
179
  protected_light.reload
180
- assert_equal "red", protected_light.state
180
+ assert_equal 'red', protected_light.state
181
181
  end
182
182
  end
183
183
  end
184
184
 
185
185
  class TestNewActiveRecord < TestActiveRecord
186
-
187
186
  def setup
188
187
  set_up_db CreateTrafficLights
189
188
  @light = TrafficLight.new
190
189
  end
191
190
 
192
- test "new active records defaults current state to the initial state" do
191
+ test 'new active records defaults current state to the initial state' do
193
192
  assert_equal :off, @light.current_state
194
193
  end
195
-
196
194
  end
197
195
 
198
196
  class TestScopes < Test::Unit::TestCase
199
- test "scope returns correct object" do
197
+ test 'scope returns correct object' do
200
198
  @light = TrafficLight.create!
201
199
  assert_respond_to TrafficLight, :off
202
200
  assert_equal TrafficLight.off.first, @light
203
201
  assert TrafficLight.red.empty?
204
202
  end
205
203
 
206
- test "scopes exist" do
204
+ test 'scopes exist' do
207
205
  assert_respond_to TrafficLight, :off
208
206
  assert_respond_to TrafficLight, :red
209
207
  assert_respond_to TrafficLight, :green
@@ -216,23 +214,23 @@ class TestScopes < Test::Unit::TestCase
216
214
  end
217
215
 
218
216
  test 'scope generation raises an exception if we try to overwrite an existing method' do
219
- assert_raise(Transitions::InvalidMethodOverride) {
217
+ assert_raise(Transitions::InvalidMethodOverride) do
220
218
  class Light < ActiveRecord::Base
221
219
  include ActiveModel::Transitions
222
220
 
223
- state_machine :auto_scopes => true do
221
+ state_machine auto_scopes: true do
224
222
  state :new
225
223
  state :broken
226
224
  end
227
225
  end
228
- }
226
+ end
229
227
  end
230
228
  end
231
229
 
232
230
  class DifferentTrafficLight < ActiveRecord::Base
233
231
  include ActiveModel::Transitions
234
232
 
235
- state_machine :attribute_name => :different_state, :auto_scopes => true do
233
+ state_machine attribute_name: :different_state, auto_scopes: true do
236
234
  state :off
237
235
 
238
236
  state :red
@@ -240,19 +238,19 @@ class DifferentTrafficLight < ActiveRecord::Base
240
238
  state :yellow
241
239
 
242
240
  event :red_on do
243
- transitions :to => :red, :from => [:yellow]
241
+ transitions to: :red, from: [:yellow]
244
242
  end
245
243
 
246
244
  event :green_on do
247
- transitions :to => :green, :from => [:red]
245
+ transitions to: :green, from: [:red]
248
246
  end
249
247
 
250
248
  event :yellow_on do
251
- transitions :to => :yellow, :from => [:green]
249
+ transitions to: :yellow, from: [:green]
252
250
  end
253
251
 
254
252
  event :reset do
255
- transitions :to => :red, :from => [:off]
253
+ transitions to: :red, from: [:off]
256
254
  end
257
255
  end
258
256
  end
@@ -263,17 +261,17 @@ class TestActiveRecordWithDifferentColumnName < Test::Unit::TestCase
263
261
  @light = DifferentTrafficLight.create!
264
262
  end
265
263
 
266
- test "new record has the initial state set" do
264
+ test 'new record has the initial state set' do
267
265
  @light = DifferentTrafficLight.new
268
- assert_equal "off", @light.different_state
266
+ assert_equal 'off', @light.different_state
269
267
  end
270
268
 
271
- test "states initial state" do
269
+ test 'states initial state' do
272
270
  assert @light.off?
273
271
  assert_equal :off, @light.current_state
274
272
  end
275
273
 
276
- test "transition to a valid state" do
274
+ test 'transition to a valid state' do
277
275
  @light.reset
278
276
  assert @light.red?
279
277
  assert_equal :red, @light.current_state
@@ -283,46 +281,46 @@ class TestActiveRecordWithDifferentColumnName < Test::Unit::TestCase
283
281
  assert_equal :green, @light.current_state
284
282
  end
285
283
 
286
- test "transition does not persist state" do
284
+ test 'transition does not persist state' do
287
285
  @light.reset
288
286
  assert_equal :red, @light.current_state
289
287
  @light.reload
290
- assert_equal "off", @light.different_state
288
+ assert_equal 'off', @light.different_state
291
289
  end
292
290
 
293
- test "transition does persists state" do
291
+ test 'transition does persists state' do
294
292
  @light.reset!
295
293
  assert_equal :red, @light.current_state
296
294
  @light.reload
297
- assert_equal "red", @light.different_state
295
+ assert_equal 'red', @light.different_state
298
296
  end
299
297
 
300
- test "transition to an invalid state" do
298
+ test 'transition to an invalid state' do
301
299
  assert_raise(Transitions::InvalidTransition) { @light.yellow_on }
302
300
  assert_equal :off, @light.current_state
303
301
  end
304
302
 
305
- test "transition with wrong state will not validate" do
303
+ test 'transition with wrong state will not validate' do
306
304
  for s in @light.class.state_machine.states
307
305
  @light.different_state = s.name
308
306
  assert @light.valid?
309
307
  end
310
- @light.different_state = "invalid_one"
308
+ @light.different_state = 'invalid_one'
311
309
  assert_false @light.valid?
312
310
  end
313
311
 
314
- test "reloading model resets current state" do
312
+ test 'reloading model resets current state' do
315
313
  @light.reset
316
314
  assert @light.red?
317
315
  @light.update_attribute(:different_state, 'green')
318
- assert @light.reload.green?, "reloaded state should come from database, not instance variable"
316
+ assert @light.reload.green?, 'reloaded state should come from database, not instance variable'
319
317
  end
320
318
 
321
- test "calling non-bang event updates state attribute" do
319
+ test 'calling non-bang event updates state attribute' do
322
320
  @light.reset!
323
321
  assert @light.red?
324
322
  @light.green_on
325
- assert_equal "green", @light.different_state
326
- assert_equal "red", @light.reload.different_state
323
+ assert_equal 'green', @light.different_state
324
+ assert_equal 'red', @light.reload.different_state
327
325
  end
328
326
  end
@@ -1,8 +1,8 @@
1
- require "helper"
1
+ require 'helper'
2
2
 
3
3
  class CreateBunnies < ActiveRecord::Migration
4
4
  def self.up
5
- create_table(:bunnies, :force => true) do |t|
5
+ create_table(:bunnies, force: true) do |t|
6
6
  t.string :status # Explicitly use another state column to ensure that this whole enchilada is working with other state column names than the default ones.
7
7
  end
8
8
  end
@@ -10,7 +10,7 @@ end
10
10
 
11
11
  class CreatePuppies < ActiveRecord::Migration
12
12
  def self.up
13
- create_table(:puppies, :force => true) do |t|
13
+ create_table(:puppies, force: true) do |t|
14
14
  t.string :state
15
15
  end
16
16
  end
@@ -19,7 +19,7 @@ end
19
19
  class Bunny < ActiveRecord::Base
20
20
  include ActiveModel::Transitions
21
21
 
22
- state_machine :attribute_name => :status, :auto_scopes => true do
22
+ state_machine attribute_name: :status, auto_scopes: true do
23
23
  state :hobbling
24
24
  end
25
25
  end
@@ -38,11 +38,11 @@ class TestScopes < Test::Unit::TestCase
38
38
  @bunny = Bunny.create!
39
39
  end
40
40
 
41
- test "scopes exist" do
41
+ test 'scopes exist' do
42
42
  assert_respond_to Bunny, :hobbling
43
43
  end
44
44
 
45
- test "scope returns correct object" do
45
+ test 'scope returns correct object' do
46
46
  assert_equal Bunny.hobbling.first, @bunny
47
47
  end
48
48
 
@@ -55,7 +55,7 @@ class TestScopes < Test::Unit::TestCase
55
55
  Class.new(ActiveRecord::Base) do
56
56
  include ActiveModel::Transitions
57
57
 
58
- state_machine :auto_scopes => true do
58
+ state_machine auto_scopes: true do
59
59
  state :new
60
60
  end
61
61
  end
@@ -1,15 +1,15 @@
1
- require "helper"
1
+ require 'helper'
2
2
 
3
3
  class CreateOrders < ActiveRecord::Migration
4
4
  def self.up
5
- create_table(:orders, :force => true) do |t|
5
+ create_table(:orders, force: true) do |t|
6
6
  t.string :state
7
7
  t.string :order_number
8
8
  t.datetime :paid_at
9
9
  t.datetime :prepared_on
10
10
  t.datetime :dispatched_at
11
11
  t.date :cancellation_date
12
- t.boolean :allow_transition, :default => true
12
+ t.boolean :allow_transition, default: true
13
13
  end
14
14
  end
15
15
  end
@@ -27,62 +27,62 @@ class Order < ActiveRecord::Base
27
27
 
28
28
  # no timestamp col is being specified here - should be ignored
29
29
  event :place do
30
- transitions :from => :opened, :to => :placed
30
+ transitions from: :opened, to: :placed
31
31
  end
32
32
 
33
33
  # should set paid_at timestamp
34
- event :pay, :timestamp => true do
35
- transitions :from => :placed, :to => :paid, :guard => lambda { |obj| obj.allow_transition }
34
+ event :pay, timestamp: true do
35
+ transitions from: :placed, to: :paid, guard: lambda { |obj| obj.allow_transition }
36
36
  end
37
37
 
38
38
  # should set prepared_on
39
- event :prepare, :timestamp => true do
40
- transitions :from => :paid, :to => :prepared
39
+ event :prepare, timestamp: true do
40
+ transitions from: :paid, to: :prepared
41
41
  end
42
42
 
43
43
  # should set dispatched_at
44
- event :deliver, :timestamp => "dispatched_at" do
45
- transitions :from => :prepared, :to => :delivered
44
+ event :deliver, timestamp: 'dispatched_at' do
45
+ transitions from: :prepared, to: :delivered
46
46
  end
47
47
 
48
48
  # should set cancellation_date
49
- event :cancel, :timestamp => :cancellation_date do
50
- transitions :from => [:placed, :paid, :prepared], :to => :cancelled
49
+ event :cancel, timestamp: :cancellation_date do
50
+ transitions from: [:placed, :paid, :prepared], to: :cancelled
51
51
  end
52
52
 
53
53
  # should raise an exception as there is no timestamp col
54
- event :reopen, :timestamp => true do
55
- transitions :from => :cancelled, :to => :opened
54
+ event :reopen, timestamp: true do
55
+ transitions from: :cancelled, to: :opened
56
56
  end
57
57
  end
58
58
  end
59
59
 
60
60
  class TestActiveRecordTimestamps < Test::Unit::TestCase
61
- require "securerandom"
61
+ require 'securerandom'
62
62
 
63
63
  def setup
64
64
  set_up_db CreateOrders
65
65
  end
66
66
 
67
67
  def create_order(state = nil)
68
- Order.create! :order_number => SecureRandom.hex(4), :state => state
68
+ Order.create! order_number: SecureRandom.hex(4), state: state
69
69
  end
70
70
 
71
71
  # control case, no timestamp has been set so we should expect default behaviour
72
- test "moving to placed does not raise any exceptions" do
72
+ test 'moving to placed does not raise any exceptions' do
73
73
  @order = create_order
74
74
  assert_nothing_raised { @order.place! }
75
- assert_equal @order.state, "placed"
75
+ assert_equal @order.state, 'placed'
76
76
  end
77
77
 
78
- test "moving to paid should set paid_at" do
78
+ test 'moving to paid should set paid_at' do
79
79
  @order = create_order(:placed)
80
80
  @order.pay!
81
81
  @order.reload
82
82
  assert_not_nil @order.paid_at
83
83
  end
84
84
 
85
- test "moving to paid should not set paid_at if our guard evaluates to false" do
85
+ test 'moving to paid should not set paid_at if our guard evaluates to false' do
86
86
  @order = create_order(:placed)
87
87
  @order.update_attribute :allow_transition, false
88
88
  @order.pay!
@@ -90,43 +90,42 @@ class TestActiveRecordTimestamps < Test::Unit::TestCase
90
90
  assert_nil @order.paid_at
91
91
  end
92
92
 
93
- test "moving to prepared should set prepared_on" do
93
+ test 'moving to prepared should set prepared_on' do
94
94
  @order = create_order(:paid)
95
95
  @order.prepare!
96
96
  @order.reload
97
97
  assert_not_nil @order.prepared_on
98
98
  end
99
99
 
100
- test "moving to delivered should set dispatched_at" do
100
+ test 'moving to delivered should set dispatched_at' do
101
101
  @order = create_order(:prepared)
102
102
  @order.deliver!
103
103
  @order.reload
104
104
  assert_not_nil @order.dispatched_at
105
105
  end
106
106
 
107
- test "moving to cancelled should set cancellation_date" do
107
+ test 'moving to cancelled should set cancellation_date' do
108
108
  @order = create_order(:placed)
109
109
  @order.cancel!
110
110
  @order.reload
111
111
  assert_not_nil @order.cancellation_date
112
112
  end
113
113
 
114
- test "moving to reopened should raise an exception as there is no attribute" do
114
+ test 'moving to reopened should raise an exception as there is no attribute' do
115
115
  @order = create_order(:cancelled)
116
116
  assert_raise(NoMethodError) { @order.re_open! }
117
117
  @order.reload
118
118
  end
119
119
 
120
- test "passing an invalid value to timestamp options should raise an exception" do
120
+ test 'passing an invalid value to timestamp options should raise an exception' do
121
121
  assert_raise(ArgumentError) do
122
122
  class Order < ActiveRecord::Base
123
123
  include ActiveModel::Transitions
124
124
  state_machine do
125
- event :replace, :timestamp => 1 do
126
- transitions :from => :prepared, :to => :placed
125
+ event :replace, timestamp: 1 do
126
+ transitions from: :prepared, to: :placed
127
127
  end
128
128
  end
129
-
130
129
  end
131
130
  end
132
131
  end
@@ -1,9 +1,9 @@
1
- require "helper"
1
+ require 'helper'
2
2
 
3
3
  # Regression test for https://github.com/troessner/transitions/issues/95
4
4
  class CreateSwitches < ActiveRecord::Migration
5
5
  def self.up
6
- create_table(:switches, :force => true) do |t|
6
+ create_table(:switches, force: true) do |t|
7
7
  t.string :state
8
8
  end
9
9
  end
@@ -24,7 +24,7 @@ class TestCustomSelect < Test::Unit::TestCase
24
24
  Switch.create!
25
25
  end
26
26
 
27
- test "should not trigger an exception when we use a custom select query which excludes the name of our state attribute" do
27
+ test 'should not trigger an exception when we use a custom select query which excludes the name of our state attribute' do
28
28
  result = Switch.select(:id)
29
29
  assert_nothing_raised NoMethodError do
30
30
  result.inspect
@@ -1,4 +1,4 @@
1
- require "helper"
1
+ require 'helper'
2
2
 
3
3
  class TestEvent < Test::Unit::TestCase
4
4
  def setup
@@ -9,64 +9,64 @@ class TestEvent < Test::Unit::TestCase
9
9
  end
10
10
 
11
11
  def event_with_symbol_success_callback
12
- @event = Transitions::Event.new(nil, @state_name, {:success => @success_as_symbol}) do
13
- transitions :to => :closed, :from => [:open, :received]
12
+ @event = Transitions::Event.new(nil, @state_name, success: @success_as_symbol) do
13
+ transitions to: :closed, from: [:open, :received]
14
14
  end
15
15
  end
16
16
  alias_method :new_event, :event_with_symbol_success_callback
17
17
 
18
18
  def event_with_lambda_success_callback
19
- @event = Transitions::Event.new(nil, @state_name, {:success => @success_as_lambda}) do
20
- transitions :to => :closed, :from => [:open, :received]
19
+ @event = Transitions::Event.new(nil, @state_name, success: @success_as_lambda) do
20
+ transitions to: :closed, from: [:open, :received]
21
21
  end
22
22
  end
23
23
 
24
24
  def event_with_array_success_callback
25
- @event = Transitions::Event.new(nil, @state_name, {:success => @success_as_array}) do
26
- transitions :to => :closed, :from => [:open, :received]
25
+ @event = Transitions::Event.new(nil, @state_name, success: @success_as_array) do
26
+ transitions to: :closed, from: [:open, :received]
27
27
  end
28
28
  end
29
29
 
30
- test "should set the name" do
30
+ test 'should set the name' do
31
31
  assert_equal @state_name, new_event.name
32
32
  end
33
33
 
34
- test "should set the success callback with a symbol and return a block" do
34
+ test 'should set the success callback with a symbol and return a block' do
35
35
  assert_respond_to event_with_symbol_success_callback.success, :call
36
36
  end
37
37
 
38
- test "should build a block which calls the given success_callback symbol on the passed record instance" do
39
- record = mock("SomeRecordToGetCalled")
38
+ test 'should build a block which calls the given success_callback symbol on the passed record instance' do
39
+ record = mock('SomeRecordToGetCalled')
40
40
  record.expects(:success_callback)
41
41
 
42
42
  event_with_symbol_success_callback.success.call(record)
43
43
  end
44
44
 
45
- test "should set the success callback with a lambda" do
45
+ test 'should set the success callback with a lambda' do
46
46
  assert_respond_to event_with_lambda_success_callback.success, :call
47
47
  end
48
48
 
49
- test "should build a block which calls the given success_callback lambda on the passed record instance" do
50
- record = mock("SomeRecordToGetCalled")
49
+ test 'should build a block which calls the given success_callback lambda on the passed record instance' do
50
+ record = mock('SomeRecordToGetCalled')
51
51
  record.expects(:success_callback)
52
52
 
53
53
  event_with_lambda_success_callback.success.call(record)
54
54
  end
55
55
 
56
- test "should set the success callback with an array" do
56
+ test 'should set the success callback with an array' do
57
57
  assert_respond_to event_with_array_success_callback.success, :call
58
58
  end
59
59
 
60
- test "should build a block which calls the given success_callback array on the passed record instance for each callback" do
61
- record = mock("SomeRecordToGetCalled")
60
+ test 'should build a block which calls the given success_callback array on the passed record instance for each callback' do
61
+ record = mock('SomeRecordToGetCalled')
62
62
  record.expects(:success_callback).twice
63
63
 
64
64
  event_with_array_success_callback.success.call(record)
65
65
  end
66
66
 
67
- test "should create StateTransitions" do
68
- Transitions::StateTransition.expects(:new).with(:to => :closed, :from => :open)
69
- Transitions::StateTransition.expects(:new).with(:to => :closed, :from => :received)
67
+ test 'should create StateTransitions' do
68
+ Transitions::StateTransition.expects(:new).with(to: :closed, from: :open)
69
+ Transitions::StateTransition.expects(:new).with(to: :closed, from: :received)
70
70
  new_event
71
71
  end
72
72
  end