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

SegmentListTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 27
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A listWithMultipleSegments() 0 9 1
A segmentsFromFileContent() 0 3 1
A listWithOneSegment() 0 7 1
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