Passed
Push — master ( ed8f97...95efe5 )
by Chema
03:24
created

twoSegmentsWithDifferentNames()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 15
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EdifactParser\Tests;
6
7
use EdifactParser\Segments\CNTControl;
8
use EdifactParser\Segments\MEADimensions;
9
use EdifactParser\Segments\UNHMessageHeader;
10
use EdifactParser\Segments\UNTMessageFooter;
11
use EdifactParser\TransactionMessage;
12
use PHPUnit\Framework\TestCase;
13
14
final class TransactionMessageTest extends TestCase
15
{
16
    /** @test */
17
    public function twoSegmentsWithDifferentNames(): void
18
    {
19
        $message = new TransactionMessage([
20
            new CNTControl(['CNT', ['7', '0.1', 'KGM']]),
21
            new MEADimensions(['MEA', 'WT', 'G', ['KGM', '0.1']]),
22
        ]);
23
24
        self::assertEquals([
25
            CNTControl::NAME => [
26
                '7' => new CNTControl(['CNT', ['7', '0.1', 'KGM']]),
27
            ],
28
            MEADimensions::NAME => [
29
                'WT' => new MEADimensions(['MEA', 'WT', 'G', ['KGM', '0.1']]),
30
            ],
31
        ], $message->segments());
32
    }
33
34
    /** @test */
35
    public function twoSegmentsWithTheSameName(): void
36
    {
37
        $message = new TransactionMessage([
38
            new UNHMessageHeader(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']]),
39
            new UNTMessageFooter(['UNT', '19', '1']),
40
            new MEADimensions(['MEA', 'WT', 'G', ['KGM', '0.1']]),
41
            new MEADimensions(['MEA', 'VOL', '', ['MTQ', '0.06822']]),
42
        ]);
43
44
        self::assertEquals([
45
            UNHMessageHeader::NAME => [
46
                '1' => new UNHMessageHeader(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']]),
47
            ],
48
            UNTMessageFooter::NAME => [
49
                '19' => new UNTMessageFooter(['UNT', '19', '1']),
50
            ],
51
            MEADimensions::NAME => [
52
                'WT' => new MEADimensions(['MEA', 'WT', 'G', ['KGM', '0.1']]),
53
                'VOL' => new MEADimensions(['MEA', 'VOL', '', ['MTQ', '0.06822']]),
54
            ],
55
        ], $message->segments());
56
    }
57
58
    /** @test */
59
    public function moreThanTwoSegmentsWithTheSameName(): void
60
    {
61
        $message = new TransactionMessage([
62
            new UNHMessageHeader(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']]),
63
            new UNTMessageFooter(['UNT', '19', '1']),
64
            new CNTControl(['CNT', ['7', '0.1', 'KGM']]),
65
            new CNTControl(['CNT', ['11', '1', 'PCE']]),
66
            new CNTControl(['CNT', ['15', '0.068224', 'MTQ']]),
67
        ]);
68
69
        self::assertEquals([
70
            UNHMessageHeader::NAME => [
71
                '1' => new UNHMessageHeader(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']]),
72
            ],
73
            UNTMessageFooter::NAME => [
74
                '19' => new UNTMessageFooter(['UNT', '19', '1']),
75
            ],
76
            CNTControl::NAME => [
77
                '7' => new CNTControl(['CNT', ['7', '0.1', 'KGM']]),
78
                '11' => new CNTControl(['CNT', ['11', '1', 'PCE']]),
79
                '15' => new CNTControl(['CNT', ['15', '0.068224', 'MTQ']]),
80
            ],
81
        ], $message->segments());
82
    }
83
}
84