Passed
Push — master ( cbefbc...3619f4 )
by Frank
16:49 queued 06:49
created

MessageConsumerThatSerializesMessages   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 17
rs 10
c 0
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 2
A handle() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EventSauce\EventSourcing\TestUtilities;
6
7
use EventSauce\EventSourcing\Message;
8
use EventSauce\EventSourcing\MessageConsumer;
9
use EventSauce\EventSourcing\Serialization\ConstructingMessageSerializer;
10
use EventSauce\EventSourcing\Serialization\MessageSerializer;
11
use PHPUnit\Framework\TestCase;
12
13
class MessageConsumerThatSerializesMessages implements MessageConsumer
14
{
15
    /**
16
     * @var MessageSerializer
17
     */
18
    private $serializer;
19
20
    public function __construct(MessageSerializer $serializer = null)
21
    {
22
        $this->serializer = $serializer ?: new ConstructingMessageSerializer();
23
    }
24
25
    public function handle(Message $message): void
26
    {
27
        $payload = $this->serializer->serializeMessage($message);
28
        $deserializedMessage = $this->serializer->unserializePayload($payload);
29
        TestCase::assertEquals($message->event(), $deserializedMessage->event());
30
    }
31
}
32