EnvelopeTest::testToNativeRoundtrip()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 9
rs 10
c 0
b 0
f 0
ccs 7
cts 7
cp 1
cc 1
nc 1
nop 0
crap 1
1
<?php declare(strict_types=1);
2
/**
3
 * This file is part of the daikon-cqrs/message-bus project.
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 */
8
9
namespace Daikon\Tests\MessageBus;
10
11
use Daikon\MessageBus\Envelope;
12
use Daikon\MessageBus\MessageInterface;
13
use Daikon\Metadata\Metadata;
14
use Daikon\Tests\MessageBus\Fixture\ChangeUsername;
15
use Daikon\Tests\MessageBus\Fixture\KnownRevision;
16
use Daikon\Tests\MessageBus\Fixture\UserId;
17
use Daikon\Tests\MessageBus\Fixture\Username;
18
use DateTimeImmutable;
19
use PHPUnit\Framework\TestCase;
20
use Ramsey\Uuid\UuidInterface;
21
22
final class EnvelopeTest extends TestCase
23
{
24 1
    public function testWrap(): void
25
    {
26 1
        $envelope = Envelope::wrap(new ChangeUsername(
27 1
            new UserId('user-23'),
28 1
            new KnownRevision(2),
29 1
            new Username('frodo')
30
        ));
31 1
        $this->assertInstanceOf(UuidInterface::class, $envelope->getUuid());
32 1
        $this->assertInstanceOf(DateTimeImmutable::class, $envelope->getTimestamp());
33 1
        $this->assertInstanceOf(Metadata::class, $envelope->getMetadata());
34 1
        $this->assertInstanceOf(MessageInterface::class, $envelope->getMessage());
35 1
    }
36
37 1
    public function testToNativeRoundtrip(): void
38
    {
39 1
        $envelope = Envelope::wrap(new ChangeUsername(
40 1
            new UserId('user-23'),
41 1
            new KnownRevision(2),
42 1
            new Username('frodo')
43
        ));
44 1
        $newEnvelope = Envelope::fromNative($envelope->toNative());
45 1
        $this->assertEquals($envelope->toNative(), $newEnvelope->toNative());
46 1
    }
47
}
48