Skip to content

Commit ba8382b

Browse files
author
Zack Teska
committed
symfony 4.2.9 fires entered event on initialize
1 parent 18eccd6 commit ba8382b

File tree

3 files changed

+47
-42
lines changed

3 files changed

+47
-42
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"license": "MIT",
66
"require": {
77
"php": ">=7.2",
8-
"symfony/workflow": "^4.2",
8+
"symfony/workflow": "^4.2.9",
99
"symfony/process": "^4.2",
1010
"symfony/event-dispatcher": "^4.2",
1111
"illuminate/console": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.*",

src/Events/WorkflowSubscriber.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class WorkflowSubscriber implements EventSubscriberInterface
1313
{
1414
public function guardEvent(SymfonyGuardEvent $event)
1515
{
16-
$workflowName = $event->getWorkflowName();
16+
$workflowName = $event->getWorkflowName();
1717
$transitionName = $event->getTransition()->getName();
1818

1919
event(new GuardEvent($event));
@@ -24,7 +24,7 @@ public function guardEvent(SymfonyGuardEvent $event)
2424

2525
public function leaveEvent(Event $event)
2626
{
27-
$places = $event->getTransition()->getFroms();
27+
$places = $event->getTransition()->getFroms();
2828
$workflowName = $event->getWorkflowName();
2929

3030
event(new LeaveEvent($event));
@@ -38,7 +38,7 @@ public function leaveEvent(Event $event)
3838

3939
public function transitionEvent(Event $event)
4040
{
41-
$workflowName = $event->getWorkflowName();
41+
$workflowName = $event->getWorkflowName();
4242
$transitionName = $event->getTransition()->getName();
4343

4444
event(new TransitionEvent($event));
@@ -49,7 +49,7 @@ public function transitionEvent(Event $event)
4949

5050
public function enterEvent(Event $event)
5151
{
52-
$places = $event->getTransition()->getTos();
52+
$places = $event->getTransition()->getTos();
5353
$workflowName = $event->getWorkflowName();
5454

5555
event(new EnterEvent($event));
@@ -63,7 +63,7 @@ public function enterEvent(Event $event)
6363

6464
public function enteredEvent(Event $event)
6565
{
66-
$places = $event->getTransition()->getTos();
66+
$places = $event->getTransition() ? $event->getTransition()->getTos() : [];
6767
$workflowName = $event->getWorkflowName();
6868

6969
event(new EnteredEvent($event));

tests/WorkflowSubscriberTest.php

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -44,42 +44,47 @@ public function testIfWorkflowEmitsEvents()
4444

4545
$workflow->apply($object, 't1');
4646

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]);
47+
$this->assertCount(31, $events);
48+
49+
// Symfony Workflow 4.2.9 fires entered event on initialize
50+
$this->assertInstanceOf(EnteredEvent::class, $events[0]);
51+
$this->assertEquals('workflow.entered', $events[1]);
52+
$this->assertEquals('workflow.straight.entered', $events[2]);
53+
54+
$this->assertInstanceOf(GuardEvent::class, $events[3]);
55+
$this->assertEquals('workflow.guard', $events[4]);
56+
$this->assertEquals('workflow.straight.guard', $events[5]);
57+
$this->assertEquals('workflow.straight.guard.t1', $events[6]);
58+
59+
$this->assertInstanceOf(LeaveEvent::class, $events[7]);
60+
$this->assertEquals('workflow.leave', $events[8]);
61+
$this->assertEquals('workflow.straight.leave', $events[9]);
62+
$this->assertEquals('workflow.straight.leave.a', $events[10]);
63+
64+
$this->assertInstanceOf(TransitionEvent::class, $events[11]);
65+
$this->assertEquals('workflow.transition', $events[12]);
66+
$this->assertEquals('workflow.straight.transition', $events[13]);
67+
$this->assertEquals('workflow.straight.transition.t1', $events[14]);
68+
69+
$this->assertInstanceOf(EnterEvent::class, $events[15]);
70+
$this->assertEquals('workflow.enter', $events[16]);
71+
$this->assertEquals('workflow.straight.enter', $events[17]);
72+
$this->assertEquals('workflow.straight.enter.b', $events[18]);
73+
74+
$this->assertInstanceOf(EnteredEvent::class, $events[19]);
75+
$this->assertEquals('workflow.entered', $events[20]);
76+
$this->assertEquals('workflow.straight.entered', $events[21]);
77+
$this->assertEquals('workflow.straight.entered.b', $events[22]);
78+
79+
$this->assertInstanceOf(CompletedEvent::class, $events[23]);
80+
$this->assertEquals('workflow.completed', $events[24]);
81+
$this->assertEquals('workflow.straight.completed', $events[25]);
82+
$this->assertEquals('workflow.straight.completed.t1', $events[26]);
83+
84+
$this->assertInstanceOf(GuardEvent::class, $events[27]);
85+
$this->assertEquals('workflow.guard', $events[28]);
86+
$this->assertEquals('workflow.straight.guard', $events[29]);
87+
$this->assertEquals('workflow.straight.guard.t2', $events[30]);
8388
}
8489
}
8590
}

0 commit comments

Comments
 (0)