aasm 4.2.0 → 4.3.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -1
- data/Gemfile +2 -2
- data/PLANNED_CHANGES.md +24 -4
- data/README.md +75 -5
- data/lib/aasm/aasm.rb +50 -36
- data/lib/aasm/base.rb +36 -18
- data/lib/aasm/core/event.rb +6 -5
- data/lib/aasm/core/state.rb +3 -2
- data/lib/aasm/core/transition.rb +5 -4
- data/lib/aasm/errors.rb +7 -4
- data/lib/aasm/instance_base.rb +14 -13
- data/lib/aasm/localizer.rb +1 -1
- data/lib/aasm/persistence/active_record_persistence.rb +41 -66
- data/lib/aasm/persistence/base.rb +7 -7
- data/lib/aasm/persistence/mongo_mapper_persistence.rb +34 -51
- data/lib/aasm/persistence/mongoid_persistence.rb +15 -36
- data/lib/aasm/persistence/plain_persistence.rb +8 -7
- data/lib/aasm/persistence/sequel_persistence.rb +12 -10
- data/lib/aasm/state_machine.rb +11 -6
- data/lib/aasm/version.rb +1 -1
- data/spec/database.rb +27 -1
- data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +25 -0
- data/spec/models/active_record/complex_active_record_example.rb +33 -0
- data/spec/models/active_record/derivate_new_dsl.rb +4 -0
- data/spec/models/active_record/false_state.rb +18 -0
- data/spec/models/active_record/gate.rb +20 -0
- data/spec/models/active_record/no_direct_assignment.rb +11 -0
- data/spec/models/active_record/no_scope.rb +11 -0
- data/spec/models/active_record/provided_and_persisted_state.rb +3 -3
- data/spec/models/active_record/simple_new_dsl.rb +9 -0
- data/spec/models/active_record/thief.rb +15 -0
- data/spec/models/active_record/with_enum.rb +20 -0
- data/spec/models/active_record/with_false_enum.rb +16 -0
- data/spec/models/active_record/with_true_enum.rb +20 -0
- data/spec/models/basic_two_state_machines_example.rb +25 -0
- data/spec/models/callbacks/basic_multiple.rb +75 -0
- data/spec/models/callbacks/guard_within_block_multiple.rb +66 -0
- data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +65 -0
- data/spec/models/callbacks/private_method_multiple.rb +44 -0
- data/spec/models/callbacks/with_args_multiple.rb +61 -0
- data/spec/models/callbacks/{with_state_args.rb → with_state_arg.rb} +0 -0
- data/spec/models/callbacks/with_state_arg_multiple.rb +26 -0
- data/spec/models/complex_example.rb +134 -0
- data/spec/models/conversation.rb +47 -1
- data/spec/models/foo.rb +57 -0
- data/spec/models/foo_callback_multiple.rb +45 -0
- data/spec/models/guardian_multiple.rb +48 -0
- data/spec/models/initial_state_proc.rb +16 -0
- data/spec/models/invalid_persistor.rb +15 -0
- data/spec/models/mongo_mapper/complex_mongo_mapper_example.rb +37 -0
- data/spec/models/mongo_mapper/no_scope_mongo_mapper.rb +11 -0
- data/spec/models/mongo_mapper/simple_mongo_mapper.rb +12 -0
- data/spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb +13 -0
- data/spec/models/mongoid/complex_mongoid_example.rb +37 -0
- data/spec/models/mongoid/no_scope_mongoid.rb +11 -0
- data/spec/models/mongoid/simple_mongoid.rb +12 -0
- data/spec/models/mongoid/simple_new_dsl_mongoid.rb +13 -0
- data/spec/models/no_initial_state.rb +13 -0
- data/spec/models/parametrised_event.rb +1 -1
- data/spec/models/parametrised_event_multiple.rb +29 -0
- data/spec/models/provided_state.rb +3 -3
- data/spec/models/sequel/complex_sequel_example.rb +45 -0
- data/spec/models/sequel/sequel_multiple.rb +25 -0
- data/spec/models/sequel/sequel_simple.rb +25 -0
- data/spec/models/simple_multiple_example.rb +30 -0
- data/spec/models/sub_class.rb +4 -0
- data/spec/models/sub_class_with_more_states.rb +11 -0
- data/spec/models/super_class.rb +28 -0
- data/spec/models/transactor.rb +27 -0
- data/spec/models/valid_state_name.rb +12 -0
- data/spec/models/validator.rb +39 -0
- data/spec/unit/basic_two_state_machines_example_spec.rb +10 -0
- data/spec/unit/callback_multiple_spec.rb +295 -0
- data/spec/unit/callbacks_spec.rb +1 -1
- data/spec/unit/complex_multiple_example_spec.rb +99 -0
- data/spec/unit/edge_cases_spec.rb +16 -0
- data/spec/unit/event_multiple_spec.rb +73 -0
- data/spec/unit/event_spec.rb +11 -6
- data/spec/unit/guard_multiple_spec.rb +60 -0
- data/spec/unit/initial_state_multiple_spec.rb +15 -0
- data/spec/unit/inspection_multiple_spec.rb +201 -0
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +560 -0
- data/spec/unit/persistence/active_record_persistence_spec.rb +17 -12
- data/spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +146 -0
- data/spec/unit/persistence/{mongo_mapper_persistance_spec.rb → mongo_mapper_persistence_spec.rb} +7 -49
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +127 -0
- data/spec/unit/persistence/mongoid_persistence_spec.rb +79 -0
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +153 -0
- data/spec/unit/persistence/sequel_persistence_spec.rb +7 -24
- data/spec/unit/reloading_spec.rb +1 -1
- data/spec/unit/simple_multiple_example_spec.rb +63 -0
- data/spec/unit/state_spec.rb +3 -1
- data/spec/unit/subclassing_multiple_spec.rb +39 -0
- data/spec/unit/transition_spec.rb +31 -22
- metadata +73 -9
- data/spec/unit/persistence/mongoid_persistance_spec.rb +0 -146
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Barron
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -121,6 +121,8 @@ files:
|
|
121
121
|
- spec/database.yml
|
122
122
|
- spec/en.yml
|
123
123
|
- spec/en_deprecated_style.yml
|
124
|
+
- spec/models/active_record/basic_active_record_two_state_machines_example.rb
|
125
|
+
- spec/models/active_record/complex_active_record_example.rb
|
124
126
|
- spec/models/active_record/derivate_new_dsl.rb
|
125
127
|
- spec/models/active_record/false_state.rb
|
126
128
|
- spec/models/active_record/gate.rb
|
@@ -137,33 +139,49 @@ files:
|
|
137
139
|
- spec/models/active_record/with_false_enum.rb
|
138
140
|
- spec/models/active_record/with_true_enum.rb
|
139
141
|
- spec/models/active_record/writer.rb
|
142
|
+
- spec/models/basic_two_state_machines_example.rb
|
140
143
|
- spec/models/callbacks/basic.rb
|
144
|
+
- spec/models/callbacks/basic_multiple.rb
|
141
145
|
- spec/models/callbacks/guard_within_block.rb
|
146
|
+
- spec/models/callbacks/guard_within_block_multiple.rb
|
142
147
|
- spec/models/callbacks/multiple_transitions_transition_guard.rb
|
148
|
+
- spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb
|
143
149
|
- spec/models/callbacks/private_method.rb
|
150
|
+
- spec/models/callbacks/private_method_multiple.rb
|
144
151
|
- spec/models/callbacks/with_args.rb
|
145
|
-
- spec/models/callbacks/
|
152
|
+
- spec/models/callbacks/with_args_multiple.rb
|
153
|
+
- spec/models/callbacks/with_state_arg.rb
|
154
|
+
- spec/models/callbacks/with_state_arg_multiple.rb
|
146
155
|
- spec/models/complex_example.rb
|
147
156
|
- spec/models/conversation.rb
|
148
157
|
- spec/models/default_state.rb
|
149
158
|
- spec/models/double_definer.rb
|
150
159
|
- spec/models/foo.rb
|
160
|
+
- spec/models/foo_callback_multiple.rb
|
151
161
|
- spec/models/guardian.rb
|
162
|
+
- spec/models/guardian_multiple.rb
|
152
163
|
- spec/models/initial_state_proc.rb
|
153
164
|
- spec/models/invalid_persistor.rb
|
165
|
+
- spec/models/mongo_mapper/complex_mongo_mapper_example.rb
|
154
166
|
- spec/models/mongo_mapper/no_scope_mongo_mapper.rb
|
155
167
|
- spec/models/mongo_mapper/simple_mongo_mapper.rb
|
156
168
|
- spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb
|
169
|
+
- spec/models/mongoid/complex_mongoid_example.rb
|
157
170
|
- spec/models/mongoid/no_scope_mongoid.rb
|
158
171
|
- spec/models/mongoid/simple_mongoid.rb
|
159
172
|
- spec/models/mongoid/simple_new_dsl_mongoid.rb
|
160
173
|
- spec/models/no_initial_state.rb
|
161
174
|
- spec/models/not_auto_loaded/process.rb
|
162
175
|
- spec/models/parametrised_event.rb
|
176
|
+
- spec/models/parametrised_event_multiple.rb
|
163
177
|
- spec/models/process_with_new_dsl.rb
|
164
178
|
- spec/models/provided_state.rb
|
179
|
+
- spec/models/sequel/complex_sequel_example.rb
|
180
|
+
- spec/models/sequel/sequel_multiple.rb
|
181
|
+
- spec/models/sequel/sequel_simple.rb
|
165
182
|
- spec/models/silencer.rb
|
166
183
|
- spec/models/simple_example.rb
|
184
|
+
- spec/models/simple_multiple_example.rb
|
167
185
|
- spec/models/state_machine_with_failed_event.rb
|
168
186
|
- spec/models/sub_class.rb
|
169
187
|
- spec/models/sub_class_with_more_states.rb
|
@@ -176,23 +194,37 @@ files:
|
|
176
194
|
- spec/models/worker.rb
|
177
195
|
- spec/spec_helper.rb
|
178
196
|
- spec/unit/api_spec.rb
|
197
|
+
- spec/unit/basic_two_state_machines_example_spec.rb
|
198
|
+
- spec/unit/callback_multiple_spec.rb
|
179
199
|
- spec/unit/callbacks_spec.rb
|
180
200
|
- spec/unit/complex_example_spec.rb
|
201
|
+
- spec/unit/complex_multiple_example_spec.rb
|
202
|
+
- spec/unit/edge_cases_spec.rb
|
203
|
+
- spec/unit/event_multiple_spec.rb
|
181
204
|
- spec/unit/event_naming_spec.rb
|
182
205
|
- spec/unit/event_spec.rb
|
206
|
+
- spec/unit/guard_multiple_spec.rb
|
183
207
|
- spec/unit/guard_spec.rb
|
208
|
+
- spec/unit/initial_state_multiple_spec.rb
|
184
209
|
- spec/unit/initial_state_spec.rb
|
210
|
+
- spec/unit/inspection_multiple_spec.rb
|
185
211
|
- spec/unit/inspection_spec.rb
|
186
212
|
- spec/unit/localizer_spec.rb
|
187
213
|
- spec/unit/memory_leak_spec.rb
|
188
214
|
- spec/unit/new_dsl_spec.rb
|
215
|
+
- spec/unit/persistence/active_record_persistence_multiple_spec.rb
|
189
216
|
- spec/unit/persistence/active_record_persistence_spec.rb
|
190
|
-
- spec/unit/persistence/
|
191
|
-
- spec/unit/persistence/
|
217
|
+
- spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb
|
218
|
+
- spec/unit/persistence/mongo_mapper_persistence_spec.rb
|
219
|
+
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
220
|
+
- spec/unit/persistence/mongoid_persistence_spec.rb
|
221
|
+
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|
192
222
|
- spec/unit/persistence/sequel_persistence_spec.rb
|
193
223
|
- spec/unit/reloading_spec.rb
|
194
224
|
- spec/unit/simple_example_spec.rb
|
225
|
+
- spec/unit/simple_multiple_example_spec.rb
|
195
226
|
- spec/unit/state_spec.rb
|
227
|
+
- spec/unit/subclassing_multiple_spec.rb
|
196
228
|
- spec/unit/subclassing_spec.rb
|
197
229
|
- spec/unit/transition_spec.rb
|
198
230
|
homepage: https://github.com/aasm/aasm
|
@@ -215,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
247
|
version: '0'
|
216
248
|
requirements: []
|
217
249
|
rubyforge_project:
|
218
|
-
rubygems_version: 2.
|
250
|
+
rubygems_version: 2.2.2
|
219
251
|
signing_key:
|
220
252
|
specification_version: 4
|
221
253
|
summary: State machine mixin for Ruby objects
|
@@ -224,6 +256,8 @@ test_files:
|
|
224
256
|
- spec/database.yml
|
225
257
|
- spec/en.yml
|
226
258
|
- spec/en_deprecated_style.yml
|
259
|
+
- spec/models/active_record/basic_active_record_two_state_machines_example.rb
|
260
|
+
- spec/models/active_record/complex_active_record_example.rb
|
227
261
|
- spec/models/active_record/derivate_new_dsl.rb
|
228
262
|
- spec/models/active_record/false_state.rb
|
229
263
|
- spec/models/active_record/gate.rb
|
@@ -240,33 +274,49 @@ test_files:
|
|
240
274
|
- spec/models/active_record/with_false_enum.rb
|
241
275
|
- spec/models/active_record/with_true_enum.rb
|
242
276
|
- spec/models/active_record/writer.rb
|
277
|
+
- spec/models/basic_two_state_machines_example.rb
|
243
278
|
- spec/models/callbacks/basic.rb
|
279
|
+
- spec/models/callbacks/basic_multiple.rb
|
244
280
|
- spec/models/callbacks/guard_within_block.rb
|
281
|
+
- spec/models/callbacks/guard_within_block_multiple.rb
|
245
282
|
- spec/models/callbacks/multiple_transitions_transition_guard.rb
|
283
|
+
- spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb
|
246
284
|
- spec/models/callbacks/private_method.rb
|
285
|
+
- spec/models/callbacks/private_method_multiple.rb
|
247
286
|
- spec/models/callbacks/with_args.rb
|
248
|
-
- spec/models/callbacks/
|
287
|
+
- spec/models/callbacks/with_args_multiple.rb
|
288
|
+
- spec/models/callbacks/with_state_arg.rb
|
289
|
+
- spec/models/callbacks/with_state_arg_multiple.rb
|
249
290
|
- spec/models/complex_example.rb
|
250
291
|
- spec/models/conversation.rb
|
251
292
|
- spec/models/default_state.rb
|
252
293
|
- spec/models/double_definer.rb
|
253
294
|
- spec/models/foo.rb
|
295
|
+
- spec/models/foo_callback_multiple.rb
|
254
296
|
- spec/models/guardian.rb
|
297
|
+
- spec/models/guardian_multiple.rb
|
255
298
|
- spec/models/initial_state_proc.rb
|
256
299
|
- spec/models/invalid_persistor.rb
|
300
|
+
- spec/models/mongo_mapper/complex_mongo_mapper_example.rb
|
257
301
|
- spec/models/mongo_mapper/no_scope_mongo_mapper.rb
|
258
302
|
- spec/models/mongo_mapper/simple_mongo_mapper.rb
|
259
303
|
- spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb
|
304
|
+
- spec/models/mongoid/complex_mongoid_example.rb
|
260
305
|
- spec/models/mongoid/no_scope_mongoid.rb
|
261
306
|
- spec/models/mongoid/simple_mongoid.rb
|
262
307
|
- spec/models/mongoid/simple_new_dsl_mongoid.rb
|
263
308
|
- spec/models/no_initial_state.rb
|
264
309
|
- spec/models/not_auto_loaded/process.rb
|
265
310
|
- spec/models/parametrised_event.rb
|
311
|
+
- spec/models/parametrised_event_multiple.rb
|
266
312
|
- spec/models/process_with_new_dsl.rb
|
267
313
|
- spec/models/provided_state.rb
|
314
|
+
- spec/models/sequel/complex_sequel_example.rb
|
315
|
+
- spec/models/sequel/sequel_multiple.rb
|
316
|
+
- spec/models/sequel/sequel_simple.rb
|
268
317
|
- spec/models/silencer.rb
|
269
318
|
- spec/models/simple_example.rb
|
319
|
+
- spec/models/simple_multiple_example.rb
|
270
320
|
- spec/models/state_machine_with_failed_event.rb
|
271
321
|
- spec/models/sub_class.rb
|
272
322
|
- spec/models/sub_class_with_more_states.rb
|
@@ -279,22 +329,36 @@ test_files:
|
|
279
329
|
- spec/models/worker.rb
|
280
330
|
- spec/spec_helper.rb
|
281
331
|
- spec/unit/api_spec.rb
|
332
|
+
- spec/unit/basic_two_state_machines_example_spec.rb
|
333
|
+
- spec/unit/callback_multiple_spec.rb
|
282
334
|
- spec/unit/callbacks_spec.rb
|
283
335
|
- spec/unit/complex_example_spec.rb
|
336
|
+
- spec/unit/complex_multiple_example_spec.rb
|
337
|
+
- spec/unit/edge_cases_spec.rb
|
338
|
+
- spec/unit/event_multiple_spec.rb
|
284
339
|
- spec/unit/event_naming_spec.rb
|
285
340
|
- spec/unit/event_spec.rb
|
341
|
+
- spec/unit/guard_multiple_spec.rb
|
286
342
|
- spec/unit/guard_spec.rb
|
343
|
+
- spec/unit/initial_state_multiple_spec.rb
|
287
344
|
- spec/unit/initial_state_spec.rb
|
345
|
+
- spec/unit/inspection_multiple_spec.rb
|
288
346
|
- spec/unit/inspection_spec.rb
|
289
347
|
- spec/unit/localizer_spec.rb
|
290
348
|
- spec/unit/memory_leak_spec.rb
|
291
349
|
- spec/unit/new_dsl_spec.rb
|
350
|
+
- spec/unit/persistence/active_record_persistence_multiple_spec.rb
|
292
351
|
- spec/unit/persistence/active_record_persistence_spec.rb
|
293
|
-
- spec/unit/persistence/
|
294
|
-
- spec/unit/persistence/
|
352
|
+
- spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb
|
353
|
+
- spec/unit/persistence/mongo_mapper_persistence_spec.rb
|
354
|
+
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
355
|
+
- spec/unit/persistence/mongoid_persistence_spec.rb
|
356
|
+
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|
295
357
|
- spec/unit/persistence/sequel_persistence_spec.rb
|
296
358
|
- spec/unit/reloading_spec.rb
|
297
359
|
- spec/unit/simple_example_spec.rb
|
360
|
+
- spec/unit/simple_multiple_example_spec.rb
|
298
361
|
- spec/unit/state_spec.rb
|
362
|
+
- spec/unit/subclassing_multiple_spec.rb
|
299
363
|
- spec/unit/subclassing_spec.rb
|
300
364
|
- spec/unit/transition_spec.rb
|
@@ -1,146 +0,0 @@
|
|
1
|
-
describe 'mongoid' do
|
2
|
-
begin
|
3
|
-
require 'mongoid'
|
4
|
-
require 'logger'
|
5
|
-
require 'spec_helper'
|
6
|
-
|
7
|
-
before(:all) do
|
8
|
-
Dir[File.dirname(__FILE__) + "/../../models/mongoid/*.rb"].sort.each { |f| require File.expand_path(f) }
|
9
|
-
|
10
|
-
# if you want to see the statements while running the spec enable the following line
|
11
|
-
# Mongoid.logger = Logger.new(STDERR)
|
12
|
-
|
13
|
-
DATABASE_NAME = "mongoid_#{Process.pid}"
|
14
|
-
|
15
|
-
Mongoid.configure do |config|
|
16
|
-
config.connect_to DATABASE_NAME
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
after do
|
21
|
-
Mongoid.purge!
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "named scopes with the old DSL" do
|
25
|
-
|
26
|
-
context "Does not already respond_to? the scope name" do
|
27
|
-
it "should add a scope" do
|
28
|
-
expect(SimpleMongoid).to respond_to(:unknown_scope)
|
29
|
-
expect(SimpleMongoid.unknown_scope.class).to eq(Mongoid::Criteria)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context "Already respond_to? the scope name" do
|
34
|
-
it "should not add a scope" do
|
35
|
-
expect(SimpleMongoid).to respond_to(:new)
|
36
|
-
expect(SimpleMongoid.new.class).to eq(SimpleMongoid)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "named scopes with the new DSL" do
|
43
|
-
|
44
|
-
context "Does not already respond_to? the scope name" do
|
45
|
-
it "should add a scope" do
|
46
|
-
expect(SimpleNewDslMongoid).to respond_to(:unknown_scope)
|
47
|
-
expect(SimpleNewDslMongoid.unknown_scope.class).to eq(Mongoid::Criteria)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context "Already respond_to? the scope name" do
|
52
|
-
it "should not add a scope" do
|
53
|
-
expect(SimpleNewDslMongoid).to respond_to(:new)
|
54
|
-
expect(SimpleNewDslMongoid.new.class).to eq(SimpleNewDslMongoid)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
it "does not create scopes if requested" do
|
59
|
-
expect(NoScopeMongoid).not_to respond_to(:ignored_scope)
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
describe "#find_in_state" do
|
65
|
-
|
66
|
-
let!(:model) { SimpleNewDslMongoid.create!(:status => :unknown_scope) }
|
67
|
-
let!(:model_id) { model._id }
|
68
|
-
|
69
|
-
it "should respond to method" do
|
70
|
-
expect(SimpleNewDslMongoid).to respond_to(:find_in_state)
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should find the model when given the correct scope and model id" do
|
74
|
-
expect(SimpleNewDslMongoid.find_in_state(model_id, 'unknown_scope').class).to eq(SimpleNewDslMongoid)
|
75
|
-
expect(SimpleNewDslMongoid.find_in_state(model_id, 'unknown_scope')).to eq(model)
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should raise DocumentNotFound error when given incorrect scope" do
|
79
|
-
expect {SimpleNewDslMongoid.find_in_state(model_id, 'new')}.to raise_error Mongoid::Errors::DocumentNotFound
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should raise DocumentNotFound error when given incorrect model id" do
|
83
|
-
expect {SimpleNewDslMongoid.find_in_state('bad_id', 'unknown_scope')}.to raise_error Mongoid::Errors::DocumentNotFound
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
describe "#count_in_state" do
|
89
|
-
|
90
|
-
before do
|
91
|
-
3.times { SimpleNewDslMongoid.create!(:status => :unknown_scope) }
|
92
|
-
end
|
93
|
-
|
94
|
-
it "should respond to method" do
|
95
|
-
expect(SimpleNewDslMongoid).to respond_to(:count_in_state)
|
96
|
-
end
|
97
|
-
|
98
|
-
it "should return n for a scope with n records persisted" do
|
99
|
-
expect(SimpleNewDslMongoid.count_in_state('unknown_scope').class).to eq(Fixnum)
|
100
|
-
expect(SimpleNewDslMongoid.count_in_state('unknown_scope')).to eq(3)
|
101
|
-
end
|
102
|
-
|
103
|
-
it "should return zero for a scope without records persisted" do
|
104
|
-
expect(SimpleNewDslMongoid.count_in_state('new').class).to eq(Fixnum)
|
105
|
-
expect(SimpleNewDslMongoid.count_in_state('new')).to eq(0)
|
106
|
-
end
|
107
|
-
|
108
|
-
end
|
109
|
-
|
110
|
-
describe "#with_state_scope" do
|
111
|
-
|
112
|
-
before do
|
113
|
-
3.times { SimpleNewDslMongoid.create!(:status => :unknown_scope) }
|
114
|
-
2.times { SimpleNewDslMongoid.create!(:status => :new) }
|
115
|
-
end
|
116
|
-
|
117
|
-
it "should respond to method" do
|
118
|
-
expect(SimpleNewDslMongoid).to respond_to(:with_state_scope)
|
119
|
-
end
|
120
|
-
|
121
|
-
it "should correctly process block" do
|
122
|
-
expect(SimpleNewDslMongoid.with_state_scope('unknown_scope') do
|
123
|
-
SimpleNewDslMongoid.count
|
124
|
-
end).to eq(3)
|
125
|
-
expect(SimpleNewDslMongoid.with_state_scope('new') do
|
126
|
-
SimpleNewDslMongoid.count
|
127
|
-
end).to eq(2)
|
128
|
-
end
|
129
|
-
|
130
|
-
end
|
131
|
-
|
132
|
-
|
133
|
-
describe "instance methods" do
|
134
|
-
let(:simple) {SimpleNewDslMongoid.new}
|
135
|
-
|
136
|
-
it "should initialize the aasm state on instantiation" do
|
137
|
-
expect(SimpleNewDslMongoid.new.status).to eql 'unknown_scope'
|
138
|
-
expect(SimpleNewDslMongoid.new.aasm.current_state).to eql :unknown_scope
|
139
|
-
end
|
140
|
-
|
141
|
-
end
|
142
|
-
|
143
|
-
rescue LoadError
|
144
|
-
puts "Not running Mongoid specs because mongoid gem is not installed!!!"
|
145
|
-
end
|
146
|
-
end
|