action_logic 0.0.3 → 0.0.4

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.
@@ -0,0 +1,564 @@
1
+ require 'action_logic'
2
+ require 'fixtures/constants'
3
+
4
+ class TestCoordinator1
5
+ include ActionLogic::ActionCoordinator
6
+
7
+ def call
8
+ context.test_coordinator1 = true
9
+ end
10
+
11
+ def plan
12
+ {
13
+ TestUseCase1 => { :success => TestUseCase2 },
14
+
15
+ TestUseCase2 => { :success => TestUseCase3 },
16
+
17
+ TestUseCase3 => { :success => nil }
18
+ }
19
+ end
20
+ end
21
+
22
+ class HaltedTestCoordinator1
23
+ include ActionLogic::ActionCoordinator
24
+
25
+ def call
26
+ context.halted_test_coordinator1 = true
27
+ end
28
+
29
+ def plan
30
+ {
31
+ HaltedTestUseCase1 => { :success => nil,
32
+ :halted => TestUseCase2 },
33
+
34
+ TestUseCase2 => { :success => TestUseCase3 },
35
+
36
+ TestUseCase3 => { :success => nil }
37
+ }
38
+ end
39
+ end
40
+
41
+ class FailureTestCoordinator1
42
+ include ActionLogic::ActionCoordinator
43
+
44
+ def call
45
+ context.failure_test_coordinator1 = true
46
+ end
47
+
48
+ def plan
49
+ {
50
+ FailureTestUseCase1 => { :success => nil,
51
+ :failure => TestUseCase2 },
52
+
53
+ TestUseCase2 => { :success => TestUseCase3 },
54
+
55
+ TestUseCase3 => { :success => nil }
56
+ }
57
+ end
58
+ end
59
+
60
+ class ValidateBeforeTestCoordinator
61
+ include ActionLogic::ActionCoordinator
62
+
63
+ validates_before Constants::ALL_VALIDATIONS
64
+
65
+ def call
66
+ end
67
+
68
+ def plan
69
+ {
70
+ TestUseCase1 => { :success => TestUseCase2 },
71
+
72
+ TestUseCase2 => { :success => TestUseCase3 },
73
+
74
+ TestUseCase3 => { :success => nil }
75
+ }
76
+ end
77
+ end
78
+
79
+ class ValidateBeforeCustomTypeTestCoordinator
80
+ include ActionLogic::ActionCoordinator
81
+
82
+ validates_before Constants::CUSTOM_TYPE_VALIDATION1
83
+
84
+ def call
85
+ end
86
+
87
+ def plan
88
+ {
89
+ TestUseCase1 => { :success => TestUseCase2 },
90
+
91
+ TestUseCase2 => { :success => TestUseCase3 },
92
+
93
+ TestUseCase3 => { :success => nil }
94
+ }
95
+ end
96
+ end
97
+
98
+ class ValidateBeforePresenceTestCoordinator
99
+ include ActionLogic::ActionCoordinator
100
+
101
+ validates_before Constants::PRESENCE_VALIDATION
102
+
103
+ def call
104
+ end
105
+
106
+ def plan
107
+ {
108
+ TestUseCase1 => { :success => TestUseCase2 },
109
+
110
+ TestUseCase2 => { :success => TestUseCase3 },
111
+
112
+ TestUseCase3 => { :success => nil }
113
+ }
114
+ end
115
+ end
116
+
117
+ class ValidateBeforeCustomPresenceTestCoordinator
118
+ include ActionLogic::ActionCoordinator
119
+
120
+ validates_before Constants::CUSTOM_PRESENCE_VALIDATION
121
+
122
+ def call
123
+ end
124
+
125
+ def plan
126
+ {
127
+ TestUseCase1 => { :success => TestUseCase2 },
128
+
129
+ TestUseCase2 => { :success => TestUseCase3 },
130
+
131
+ TestUseCase3 => { :success => nil }
132
+ }
133
+ end
134
+ end
135
+
136
+ class ValidateBeforeUnrecognizablePresenceTestCoordinator
137
+ include ActionLogic::ActionCoordinator
138
+
139
+ validates_before :integer_test => { :presence => :true }
140
+
141
+ def call
142
+ end
143
+
144
+ def plan
145
+ {
146
+ TestUseCase1 => { :success => TestUseCase2 },
147
+
148
+ TestUseCase2 => { :success => TestUseCase3 },
149
+
150
+ TestUseCase3 => { :success => nil }
151
+ }
152
+ end
153
+ end
154
+
155
+ class ValidateAfterTestCoordinator
156
+ include ActionLogic::ActionCoordinator
157
+
158
+ validates_after Constants::ALL_VALIDATIONS
159
+
160
+ def call
161
+ context.integer_test = 1
162
+ context.float_test = 1.0
163
+ context.string_test = "string"
164
+ context.bool_test = false
165
+ context.hash_test = {}
166
+ context.array_test = []
167
+ context.symbol_test = :symbol
168
+ context.nil_test = nil
169
+ end
170
+
171
+ def plan
172
+ {
173
+ TestUseCase1 => { :success => TestUseCase2 },
174
+
175
+ TestUseCase2 => { :success => TestUseCase3 },
176
+
177
+ TestUseCase3 => { :success => nil }
178
+ }
179
+ end
180
+ end
181
+
182
+ class ValidateAfterMissingAttributesTestCoordinator
183
+ include ActionLogic::ActionCoordinator
184
+
185
+ validates_after Constants::ALL_VALIDATIONS
186
+
187
+ def call
188
+ end
189
+
190
+ def plan
191
+ {
192
+ TestUseCase1 => { :success => TestUseCase2 },
193
+
194
+ TestUseCase2 => { :success => TestUseCase3 },
195
+
196
+ TestUseCase3 => { :success => nil }
197
+ }
198
+ end
199
+ end
200
+
201
+ class ValidateAfterInvalidTypeTestCoordinator
202
+ include ActionLogic::ActionCoordinator
203
+
204
+ validates_after Constants::ALL_VALIDATIONS
205
+
206
+ def call
207
+ context.integer_test = nil
208
+ context.float_test = nil
209
+ context.string_test = nil
210
+ context.bool_test = nil
211
+ context.hash_test = nil
212
+ context.array_test = nil
213
+ context.symbol_test = nil
214
+ context.nil_test = 1
215
+ end
216
+
217
+ def plan
218
+ {
219
+ TestUseCase1 => { :success => TestUseCase2 },
220
+
221
+ TestUseCase2 => { :success => TestUseCase3 },
222
+
223
+ TestUseCase3 => { :success => nil }
224
+ }
225
+ end
226
+ end
227
+
228
+ class ValidateAfterCustomTypeTestCoordinator
229
+ include ActionLogic::ActionCoordinator
230
+
231
+ validates_after Constants::CUSTOM_TYPE_VALIDATION1
232
+
233
+ def call
234
+ context.custom_type = CustomType1.new
235
+ end
236
+
237
+ def plan
238
+ {
239
+ TestUseCase1 => { :success => TestUseCase2 },
240
+
241
+ TestUseCase2 => { :success => TestUseCase3 },
242
+
243
+ TestUseCase3 => { :success => nil }
244
+ }
245
+ end
246
+ end
247
+
248
+ class ValidateAfterInvalidCustomTypeTestCoordinator
249
+ include ActionLogic::ActionCoordinator
250
+
251
+ validates_after Constants::CUSTOM_TYPE_VALIDATION2
252
+
253
+ def call
254
+ context.custom_type = CustomType1.new
255
+ end
256
+
257
+ def plan
258
+ {
259
+ TestUseCase1 => { :success => TestUseCase2 },
260
+
261
+ TestUseCase2 => { :success => TestUseCase3 },
262
+
263
+ TestUseCase3 => { :success => nil }
264
+ }
265
+ end
266
+ end
267
+
268
+ class ValidateAfterPresenceTestCoordinator
269
+ include ActionLogic::ActionCoordinator
270
+
271
+ validates_after Constants::PRESENCE_VALIDATION
272
+
273
+ def call
274
+ context.integer_test = 1
275
+ end
276
+
277
+ def plan
278
+ {
279
+ TestUseCase1 => { :success => TestUseCase2 },
280
+
281
+ TestUseCase2 => { :success => TestUseCase3 },
282
+
283
+ TestUseCase3 => { :success => nil }
284
+ }
285
+ end
286
+ end
287
+
288
+ class ValidateAfterInvalidPresenceTestCoordinator
289
+ include ActionLogic::ActionCoordinator
290
+
291
+ validates_after Constants::PRESENCE_VALIDATION
292
+
293
+ def call
294
+ context.integer_test = nil
295
+ end
296
+
297
+ def plan
298
+ {
299
+ TestUseCase1 => { :success => TestUseCase2 },
300
+
301
+ TestUseCase2 => { :success => TestUseCase3 },
302
+
303
+ TestUseCase3 => { :success => nil }
304
+ }
305
+ end
306
+ end
307
+
308
+ class ValidateAfterCustomPresenceTestCoordinator
309
+ include ActionLogic::ActionCoordinator
310
+
311
+ validates_after Constants::CUSTOM_PRESENCE_VALIDATION
312
+
313
+ def call
314
+ context.array_test = [1]
315
+ end
316
+
317
+ def plan
318
+ {
319
+ TestUseCase1 => { :success => TestUseCase2 },
320
+
321
+ TestUseCase2 => { :success => TestUseCase3 },
322
+
323
+ TestUseCase3 => { :success => nil }
324
+ }
325
+ end
326
+ end
327
+
328
+ class ValidateAfterInvalidCustomPresenceTestCoordinator
329
+ include ActionLogic::ActionCoordinator
330
+
331
+ validates_after Constants::CUSTOM_PRESENCE_VALIDATION
332
+
333
+ def call
334
+ context.array_test = []
335
+ end
336
+
337
+ def plan
338
+ {
339
+ TestUseCase1 => { :success => TestUseCase2 },
340
+
341
+ TestUseCase2 => { :success => TestUseCase3 },
342
+
343
+ TestUseCase3 => { :success => nil }
344
+ }
345
+ end
346
+ end
347
+
348
+ class ValidateAfterUnrecognizablePresenceTestCoordinator
349
+ include ActionLogic::ActionCoordinator
350
+
351
+ validates_after :integer_test => { :presence => :true }
352
+
353
+ def call
354
+ context.integer_test = 1
355
+ end
356
+
357
+ def plan
358
+ {
359
+ TestUseCase1 => { :success => TestUseCase2 },
360
+
361
+ TestUseCase2 => { :success => TestUseCase3 },
362
+
363
+ TestUseCase3 => { :success => nil }
364
+ }
365
+ end
366
+ end
367
+
368
+ class TestUseCase1
369
+ include ActionLogic::ActionUseCase
370
+
371
+ def call
372
+ context.test_use_case1 = true
373
+ end
374
+
375
+ def tasks
376
+ [TestTask1]
377
+ end
378
+ end
379
+
380
+ class TestHaltUseCase1
381
+ include ActionLogic::ActionUseCase
382
+
383
+ def call
384
+ context.test_use_case1 = true
385
+ end
386
+
387
+ def tasks
388
+ [HaltTestTask1]
389
+ end
390
+ end
391
+
392
+ class TestUseCase2
393
+ include ActionLogic::ActionUseCase
394
+
395
+ def call
396
+ context.test_use_case2 = true
397
+ end
398
+
399
+ def tasks
400
+ [TestTask2]
401
+ end
402
+ end
403
+
404
+ class TestUseCase3
405
+ include ActionLogic::ActionUseCase
406
+
407
+ def call
408
+ context.test_use_case3 = true
409
+ end
410
+
411
+ def tasks
412
+ [TestTask3]
413
+ end
414
+ end
415
+
416
+ class HaltedTestUseCase1
417
+ include ActionLogic::ActionUseCase
418
+
419
+ def call
420
+ context.halted_test_use_case1 = true
421
+ end
422
+
423
+ def tasks
424
+ [HaltedTestTask1]
425
+ end
426
+ end
427
+
428
+ class HaltedTestUseCase2
429
+ include ActionLogic::ActionUseCase
430
+
431
+ def call
432
+ context.halted_test_use_case2 = true
433
+ end
434
+
435
+ def tasks
436
+ [HaltedTestTask2]
437
+ end
438
+ end
439
+
440
+ class HaltedTestUseCase3
441
+ include ActionLogic::ActionUseCase
442
+
443
+ def call
444
+ context.halted_test_use_case3 = true
445
+ end
446
+
447
+ def tasks
448
+ [HaltedTestTask3]
449
+ end
450
+ end
451
+
452
+ class FailureTestUseCase1
453
+ include ActionLogic::ActionUseCase
454
+
455
+ def call
456
+ context.failure_test_use_case1 = true
457
+ end
458
+
459
+ def tasks
460
+ [FailureTestTask1]
461
+ end
462
+ end
463
+
464
+ class FailureTestUseCase2
465
+ include ActionLogic::ActionUseCase
466
+
467
+ def call
468
+ context.failure_test_use_case2 = true
469
+ end
470
+
471
+ def tasks
472
+ [FailureTestTask2]
473
+ end
474
+ end
475
+
476
+ class FailureTestUseCase3
477
+ include ActionLogic::ActionUseCase
478
+
479
+ def call
480
+ context.failure_test_use_case3 = true
481
+ end
482
+
483
+ def tasks
484
+ [FailureTestTask3]
485
+ end
486
+ end
487
+
488
+ class TestTask1
489
+ include ActionLogic::ActionTask
490
+
491
+ def call
492
+ context.test_task1 = true
493
+ end
494
+ end
495
+
496
+ class TestTask2
497
+ include ActionLogic::ActionTask
498
+
499
+ def call
500
+ context.test_task2 = true
501
+ end
502
+ end
503
+
504
+ class TestTask3
505
+ include ActionLogic::ActionTask
506
+
507
+ def call
508
+ context.test_task3 = true
509
+ end
510
+ end
511
+
512
+ class HaltedTestTask1
513
+ include ActionLogic::ActionTask
514
+
515
+ def call
516
+ context.halted_test_task1 = true
517
+ context.halt!
518
+ end
519
+ end
520
+
521
+ class HaltedTestTask2
522
+ include ActionLogic::ActionTask
523
+
524
+ def call
525
+ context.halted_test_task2 = true
526
+ context.halt!
527
+ end
528
+ end
529
+
530
+ class HaltedTestTask3
531
+ include ActionLogic::ActionTask
532
+
533
+ def call
534
+ context.halted_test_task3 = true
535
+ context.halt!
536
+ end
537
+ end
538
+
539
+ class FailureTestTask1
540
+ include ActionLogic::ActionTask
541
+
542
+ def call
543
+ context.failure_test_task1 = true
544
+ context.fail!
545
+ end
546
+ end
547
+
548
+ class FailureTestTask2
549
+ include ActionLogic::ActionTask
550
+
551
+ def call
552
+ context.failure_test_task2 = true
553
+ context.fail!
554
+ end
555
+ end
556
+
557
+ class FailureTestTask3
558
+ include ActionLogic::ActionTask
559
+
560
+ def call
561
+ context.failure_test_task3 = true
562
+ context.fail!
563
+ end
564
+ end
@@ -0,0 +1,5 @@
1
+ class CustomType1
2
+ end
3
+
4
+ class CustomType2
5
+ end