1
1
<?php
2
+
2
3
namespace Tests {
3
4
5
+ use Brexis \LaravelWorkflow \Events \AnnounceEvent ;
6
+ use Brexis \LaravelWorkflow \Events \CompletedEvent ;
7
+ use Brexis \LaravelWorkflow \Events \EnteredEvent ;
8
+ use Brexis \LaravelWorkflow \Events \EnterEvent ;
9
+ use Brexis \LaravelWorkflow \Events \GuardEvent ;
10
+ use Brexis \LaravelWorkflow \Events \LeaveEvent ;
11
+ use Brexis \LaravelWorkflow \Events \TransitionEvent ;
4
12
use PHPUnit \Framework \TestCase ;
5
13
use Brexis \LaravelWorkflow \WorkflowRegistry ;
6
14
use Tests \Fixtures \TestObject ;
@@ -13,44 +21,71 @@ public function testIfWorkflowEmitsEvents()
13
21
14
22
$ events = [];
15
23
16
- $ config = [
17
- 'straight ' => [
18
- 'supports ' => ['Tests\Fixtures\TestObject ' ],
19
- 'places ' => ['a ' , 'b ' , 'c ' ],
20
- 'transitions ' => [
21
- 't1 ' => [
22
- 'from ' => 'a ' ,
23
- 'to ' => 'b ' ,
24
+ $ config = [
25
+ 'straight ' => [
26
+ 'supports ' => [TestObject::class],
27
+ 'places ' => ['a ' , 'b ' , 'c ' ],
28
+ 'transitions ' => [
29
+ 't1 ' => [
30
+ 'from ' => 'a ' ,
31
+ 'to ' => 'b ' ,
32
+ ],
33
+ 't2 ' => [
34
+ 'from ' => 'b ' ,
35
+ 'to ' => 'c ' ,
36
+ ],
24
37
],
25
- 't2 ' => [
26
- 'from ' => 'b ' ,
27
- 'to ' => 'c ' ,
28
- ]
29
38
],
30
- ]
31
39
];
32
40
33
- $ registry = new WorkflowRegistry ($ config );
34
- $ object = new TestObject ;
35
- $ workflow = $ registry ->get ($ object );
41
+ $ registry = new WorkflowRegistry ($ config );
42
+ $ object = new TestObject ;
43
+ $ workflow = $ registry ->get ($ object );
36
44
37
45
$ workflow ->apply ($ object , 't1 ' );
38
46
39
- $ this ->assertTrue ($ events [0 ] instanceof \Brexis \LaravelWorkflow \Events \GuardEvent);
40
- $ this ->assertTrue ($ events [1 ] == "workflow.straight.guard " );
41
- $ this ->assertTrue ($ events [2 ] instanceof \Brexis \LaravelWorkflow \Events \LeaveEvent);
42
- $ this ->assertTrue ($ events [3 ] == "workflow.straight.leave " );
43
- $ this ->assertTrue ($ events [4 ] instanceof \Brexis \LaravelWorkflow \Events \TransitionEvent);
44
- $ this ->assertTrue ($ events [5 ] == "workflow.straight.transition " );
45
- $ this ->assertTrue ($ events [6 ] instanceof \Brexis \LaravelWorkflow \Events \EnterEvent);
46
- $ this ->assertTrue ($ events [7 ] == "workflow.straight.enter " );
47
- $ this ->assertTrue ($ events [8 ] instanceof \Brexis \LaravelWorkflow \Events \EnteredEvent);
48
- $ this ->assertTrue ($ events [9 ] == "workflow.straight.entered " );
47
+ $ this ->assertCount (28 , $ events );
48
+
49
+ $ this ->assertInstanceOf (GuardEvent::class, $ events [0 ]);
50
+ $ this ->assertEquals ('workflow.guard ' , $ events [1 ]);
51
+ $ this ->assertEquals ('workflow.straight.guard ' , $ events [2 ]);
52
+ $ this ->assertEquals ('workflow.straight.guard.t1 ' , $ events [3 ]);
53
+
54
+ $ this ->assertInstanceOf (LeaveEvent::class, $ events [4 ]);
55
+ $ this ->assertEquals ('workflow.leave ' , $ events [5 ]);
56
+ $ this ->assertEquals ('workflow.straight.leave ' , $ events [6 ]);
57
+ $ this ->assertEquals ('workflow.straight.leave.a ' , $ events [7 ]);
58
+
59
+ $ this ->assertInstanceOf (TransitionEvent::class, $ events [8 ]);
60
+ $ this ->assertEquals ('workflow.transition ' , $ events [9 ]);
61
+ $ this ->assertEquals ('workflow.straight.transition ' , $ events [10 ]);
62
+ $ this ->assertEquals ('workflow.straight.transition.t1 ' , $ events [11 ]);
63
+
64
+ $ this ->assertInstanceOf (EnterEvent::class, $ events [12 ]);
65
+ $ this ->assertEquals ('workflow.enter ' , $ events [13 ]);
66
+ $ this ->assertEquals ('workflow.straight.enter ' , $ events [14 ]);
67
+ $ this ->assertEquals ('workflow.straight.enter.b ' , $ events [15 ]);
68
+
69
+ $ this ->assertInstanceOf (EnteredEvent::class, $ events [16 ]);
70
+ $ this ->assertEquals ('workflow.entered ' , $ events [17 ]);
71
+ $ this ->assertEquals ('workflow.straight.entered ' , $ events [18 ]);
72
+ $ this ->assertEquals ('workflow.straight.entered.b ' , $ events [19 ]);
73
+
74
+ $ this ->assertInstanceOf (CompletedEvent::class, $ events [20 ]);
75
+ $ this ->assertEquals ('workflow.completed ' , $ events [21 ]);
76
+ $ this ->assertEquals ('workflow.straight.completed ' , $ events [22 ]);
77
+ $ this ->assertEquals ('workflow.straight.completed.t1 ' , $ events [23 ]);
78
+
79
+ $ this ->assertInstanceOf (GuardEvent::class, $ events [24 ]);
80
+ $ this ->assertEquals ('workflow.guard ' , $ events [25 ]);
81
+ $ this ->assertEquals ('workflow.straight.guard ' , $ events [26 ]);
82
+ $ this ->assertEquals ('workflow.straight.guard.t2 ' , $ events [27 ]);
49
83
}
50
84
}
51
85
}
52
86
53
87
namespace {
88
+
54
89
$ events = null ;
55
90
56
91
function event ($ ev )
0 commit comments