Passed
Push — master ( f27e95...6a73f4 )
by Chema
08:35 queued 11s
created

SegmentListTest::segmentsFromFileContent()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EdifactParser\Tests\Unit;
6
7
use EDI\Parser;
8
use EdifactParser\SegmentList;
9
use EdifactParser\Segments\CNTControl;
10
use EdifactParser\Segments\UNHMessageHeader;
11
use PHPUnit\Framework\TestCase;
12
13
final class SegmentListTest extends TestCase
14
{
15
    /** @test */
16
    public function listWithOneSegment(): void
17
    {
18
        $fileContent = "UNH+1+IFTMIN:S:93A:UN:PN001'";
19
20
        self::assertEquals([
21
            new UNHMessageHeader(['UNH', '1', ['IFTMIN', 'S', '93A', 'UN', 'PN001']]),
22
        ], $this->segmentsFromFileContent($fileContent));
23
    }
24
25
    /** @test */
26
    public function listWithMultipleSegments(): void
27
    {
28
        $fileContent = "UNH+1+IFTMIN:S:1A:UN:P1'\nUNH+2+IFTMIN:R:2A:UN:P2'\nCNT+7:0.1:KGM'";
29
30
        self::assertEquals([
31
            new UNHMessageHeader(['UNH', '1', ['IFTMIN', 'S', '1A', 'UN', 'P1']]),
32
            new UNHMessageHeader(['UNH', '2', ['IFTMIN', 'R', '2A', 'UN', 'P2']]),
33
            new CNTControl(['CNT', ['7', '0.1', 'KGM']]),
34
        ], $this->segmentsFromFileContent($fileContent));
35
    }
36
37
    private function segmentsFromFileContent(string $fileContent)
38
    {
39
        return SegmentList::factory()->fromRaw((new Parser($fileContent))->get());
40
    }
41
}
42