Passed
Push — master ( 90a5eb...23c09d )
by
unknown
47s queued 11s
created

dataCreateOrderForEmissionICRequestToExtensionInvalid()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
cc 1
nc 1
nop 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A RequestToExtensionTest.php$0 ➔ __construct() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Lamoda\OmsClient\Tests\V2;
6
7
use Lamoda\OmsClient\Exception\OmsGeneralErrorException;
8
use Lamoda\OmsClient\V2\Dto\CreateOrderForEmissionICRequest;
9
use Lamoda\OmsClient\V2\Dto\CreateOrderForEmissionICRequestLight;
10
use Lamoda\OmsClient\V2\Dto\CreateOrderForEmissionICRequestLp;
11
use Lamoda\OmsClient\V2\Dto\CreateOrderForEmissionICRequestPerfum;
12
use Lamoda\OmsClient\V2\Dto\CreateOrderForEmissionICRequestShoes;
13
use Lamoda\OmsClient\V2\Extension;
14
use Lamoda\OmsClient\V2\RequestToExtension;
15
use PHPUnit\Framework\TestCase;
16
17
final class RequestToExtensionTest extends TestCase
18
{
19
    /**
20
     * @var RequestToExtension
21
     */
22
    private $requestToExtension;
23
24
    protected function setUp(): void
25
    {
26
        parent::setUp();
27
28
        $this->requestToExtension = new RequestToExtension();
29
    }
30
31
    /**
32
     * @dataProvider dataCreateOrderForEmissionICRequestToExtensionInvalid
33
     */
34
    public function testCreateOrderForEmissionICRequestToExtensionInvalid($request)
35
    {
36
        $this->expectException(OmsGeneralErrorException::class);
37
38
        $this->requestToExtension->getExtensionByCreateOrderForEmissionICRequest($request);
39
    }
40
41
    /**
42
     * @dataProvider dataCreateOrderForEmissionICRequestToExtensionValid
43
     */
44
    public function testCreateOrderForEmissionICRequestToExtensionValid(
45
        CreateOrderForEmissionICRequest $request,
46
        Extension $expectedExtension
47
    ): void {
48
        $extension = $this->requestToExtension->getExtensionByCreateOrderForEmissionICRequest($request);
49
50
        $this->assertEquals((string)$expectedExtension, (string)$extension);
51
    }
52
53
    public function dataCreateOrderForEmissionICRequestToExtensionValid(): array
54
    {
55
        return [
56
            [
57
                'request' => new CreateOrderForEmissionICRequestLight('', '', '', '', '', new \DateTime(), []),
58
                'expectedExtension' => Extension::light()
59
            ],
60
            [
61
                'request' => new CreateOrderForEmissionICRequestLp('', '', '', '', []),
62
                'expectedExtension' => Extension::lp()
63
            ],
64
            [
65
                'request' => new CreateOrderForEmissionICRequestPerfum('', '', '', '', []),
66
                'expectedExtension' => Extension::perfum()
67
            ],
68
            [
69
                'request' => new CreateOrderForEmissionICRequestShoes('', '', '', '', []),
70
                'expectedExtension' => Extension::shoes()
71
            ],
72
        ];
73
    }
74
75
    public function dataCreateOrderForEmissionICRequestToExtensionInvalid(): iterable
76
    {
77
        yield [
78
            'request' => new class() extends CreateOrderForEmissionICRequest {
79
                public function __construct()
80
                {
81
                    parent::__construct([]);
82
                }
83
            }
84
        ];
85
    }
86
}
87