action_logic 0.0.3 → 0.0.4

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