Completed
Push — master ( 7fae80...8ffdf8 )
by Matthew
07:25
created

EventDispatcherTest::testEventDispatcher()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 33
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 33
rs 8.8571
c 0
b 0
f 0
nc 1
cc 1
eloc 23
nop 0
1
<?php
2
3
namespace Dtc\QueueBundle\Tests\EventDispatcher;
4
5
use Dtc\QueueBundle\EventDispatcher\Event;
6
use Dtc\QueueBundle\EventDispatcher\EventDispatcher;
7
use Dtc\QueueBundle\Model\Job;
8
use PHPUnit\Framework\TestCase;
9
10
class EventDispatcherTest extends TestCase
11
{
12
    public function testEventDispatcher()
13
    {
14
        $eventDispatcher = new EventDispatcher();
15
        $eventSubscriber = new StubEventSubscriber();
16
17
        self::assertFalse($eventDispatcher->hasListeners(Event::POST_JOB));
18
        self::assertFalse($eventDispatcher->hasListeners(Event::PRE_JOB));
19
20
        $eventDispatcher->addSubscriber($eventSubscriber);
21
        self::assertTrue($eventDispatcher->hasListeners(Event::POST_JOB));
22
        self::assertTrue($eventDispatcher->hasListeners(Event::PRE_JOB));
23
24
        $job = new Job();
25
        $event = new Event($job);
26
27
        self::assertEmpty($eventSubscriber->getPostJobCalled());
28
        self::assertEmpty($eventSubscriber->getPreJobCalled());
29
30
        $eventDispatcher->dispatch(Event::PRE_JOB, $event);
31
32
        self::assertEmpty($eventSubscriber->getPostJobCalled());
33
        $preJobCalled = $eventSubscriber->getPreJobCalled();
34
        self::assertNotEmpty($preJobCalled);
35
        $dispatchedEvent = $preJobCalled[0];
36
        self::assertEquals($event, $dispatchedEvent);
37
38
        $eventDispatcher->dispatch(Event::POST_JOB, $event);
39
40
        $postJobCalled = $eventSubscriber->getPostJobCalled();
41
        self::assertNotEmpty($postJobCalled);
42
        $dispatchedEvent = $postJobCalled[0];
43
        self::assertEquals($event, $dispatchedEvent);
44
    }
45
}
46