Completed
Push — master ( eefbf1...ab6c28 )
by Tobias
03:54 queued 01:15
created

HydratorTest::testTransform()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 32

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 32
rs 9.408
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Tests\Happyr\MessageSerializer\Hydrator;
6
7
use Happyr\MessageSerializer\Hydrator\Hydrator;
8
use Happyr\MessageSerializer\Hydrator\HydratorInterface;
9
use PHPUnit\Framework\TestCase;
10
11
/**
12
 * @internal
13
 */
14
final class HydratorTest extends TestCase
15
{
16
    public function testTransform()
17
    {
18
        $fooHydrator = $this->getMockBuilder(HydratorInterface::class)
19
            ->setMethods(['toMessage', 'supports'])
20
            ->getMock();
21
22
        $version = 2;
23
        $identifier = 'foobar';
24
        $payload = ['foo' => 'bar'];
25
        $time = \time();
26
        $data = [
27
            'version' => $version,
28
            'identifier' => $identifier,
29
            'payload' => $payload,
30
            'timestamp' => $time,
31
        ];
32
33
        $fooHydrator->expects(self::once())
34
            ->method('supports')
35
            ->with($identifier, $version)
36
            ->willReturn(true);
37
38
        $fooHydrator->expects(self::once())
39
            ->method('toMessage')
40
            ->with($payload, $version)
41
            ->willReturn(new \stdClass());
42
43
        $hydrator = new Hydrator([$fooHydrator]);
44
        $output = $hydrator->toMessage($data);
45
46
        self::assertInstanceOf(\stdClass::class, $output);
47
    }
48
}
49