Passed
Push — master ( b2b84f...109e7c )
by Thomas Mauro
03:02
created

DoctrineClearEntityManagerWorkerSubscriberTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 3
dl 0
loc 43
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace TMV\Laminas\Messenger\Test\Subscriber;
6
7
use Doctrine\Persistence\ManagerRegistry;
8
use Doctrine\ORM\EntityManagerInterface;
9
use PHPUnit\Framework\TestCase;
10
use Prophecy\PhpUnit\ProphecyTrait;
11
use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
12
use Symfony\Component\Messenger\Event\WorkerMessageHandledEvent;
13
use TMV\Laminas\Messenger\Subscriber\DoctrineClearEntityManagerWorkerSubscriber;
14
15
class DoctrineClearEntityManagerWorkerSubscriberTest extends TestCase
16
{
17
    use ProphecyTrait;
18
19
    public function testSubscribedEvents(): void
20
    {
21
        $managerRegistry = $this->prophesize(ManagerRegistry::class);
22
        $subscriber = new DoctrineClearEntityManagerWorkerSubscriber($managerRegistry->reveal());
23
24
        $events = [];
25
        foreach (DoctrineClearEntityManagerWorkerSubscriber::getSubscribedEvents() as $key => $value) {
26
            $events[$key] = $value;
27
            $this->assertIsCallable([$subscriber, $value]);
28
        }
29
30
        $this->assertSame([
31
            WorkerMessageHandledEvent::class => 'onWorkerMessageHandled',
32
            WorkerMessageFailedEvent::class => 'onWorkerMessageFailed',
33
        ], $events);
34
    }
35
36
    public function testOnWorkerMessageHandled(): void
37
    {
38
        $entityManager = $this->prophesize(EntityManagerInterface::class);
39
        $managerRegistry = $this->prophesize(ManagerRegistry::class);
40
41
        $managerRegistry->getManagers()->willReturn([$entityManager->reveal()]);
42
        $entityManager->clear()->shouldBeCalled();
43
44
        $subscriber = new DoctrineClearEntityManagerWorkerSubscriber($managerRegistry->reveal());
45
        $subscriber->onWorkerMessageHandled();
46
    }
47
48
    public function testOnWorkerMessageFailed(): void
49
    {
50
        $entityManager = $this->prophesize(EntityManagerInterface::class);
51
        $managerRegistry = $this->prophesize(ManagerRegistry::class);
52
53
        $managerRegistry->getManagers()->willReturn([$entityManager->reveal()]);
54
        $entityManager->clear()->shouldBeCalled();
55
56
        $subscriber = new DoctrineClearEntityManagerWorkerSubscriber($managerRegistry->reveal());
57
        $subscriber->onWorkerMessageFailed();
58
    }
59
}
60