Skip to content

Commit 07866ad

Browse files
committed
More tests, smaller EDI files in test folder
1 parent c748d38 commit 07866ad

File tree

3 files changed

+45
-28903
lines changed

3 files changed

+45
-28903
lines changed

tests/EDITest/InterpreterTest.php

+42-1
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,29 @@ public function testCOARRI()
2828
$interpreter = new Interpreter($mapping->getMessage('COARRI'), $segs, $svc);
2929
$interpreter->prepare($parser->get());
3030

31-
$this->assertCount(5, $interpreter->getMessages());
31+
$this->assertCount(3, $interpreter->getMessages()); //2 + service
3232
$this->assertCount(0, $interpreter->getErrors());
3333
$this->assertCount(2, $interpreter->getServiceSegments());
3434
}
3535

36+
public function testServiceSegments()
37+
{
38+
$parser = new Parser(__DIR__ . "/../files/D95BCOARRI.edi");
39+
40+
$mapping = new \EDI\Mapping\MappingProvider('D95B');
41+
$analyser = new Analyser();
42+
$segs = $analyser->loadSegmentsXml($mapping->getSegments());
43+
$svc = $analyser->loadSegmentsXml($mapping->getServiceSegments(3));
44+
45+
$interpreter = new Interpreter($mapping->getMessage('COARRI'), $segs, $svc);
46+
$interpreter->prepare($parser->get());
47+
$svc = $interpreter->getServiceSegments();
48+
$svcjson = $interpreter->getJsonServiceSegments();
49+
$svcjsonpretty = $interpreter->getJsonServiceSegments(true);
50+
$this->assertEquals($svc, json_decode($svcjson, true));
51+
$this->assertEquals(26, substr_count($svcjsonpretty, "\n"));
52+
}
53+
3654
public function testBAPLIE()
3755
{
3856
$parser = new Parser(__DIR__ . "/../files/D95BBAPLIE.edi");
@@ -70,6 +88,9 @@ public function testDESADV()
7088
"JSON does not match expected output"
7189
);
7290

91+
$this->assertEquals(3152, strlen($interpreter->getJson()));
92+
$this->assertEquals(8379, strlen($interpreter->getJson(true)));
93+
7394
$this->assertCount(2, $interpreter->getMessages());
7495
$this->assertCount(0, $interpreter->getErrors());
7596
$this->assertCount(2, $interpreter->getServiceSegments());
@@ -96,6 +117,26 @@ public function testMissingUNTUNZ()
96117
$this->assertEquals(['UNZ', 'UNT'], $segments);
97118
}
98119

120+
public function testMissingUNBUNH()
121+
{
122+
$edi = "UNT+30+1907'UNZ+1+1865'";
123+
$parser = new Parser($edi);
124+
$mapping = new \EDI\Mapping\MappingProvider('D95B');
125+
$analyser = new Analyser();
126+
$segs = $analyser->loadSegmentsXml($mapping->getSegments());
127+
$svc = $analyser->loadSegmentsXml($mapping->getServiceSegments(3));
128+
129+
$interpreter = new Interpreter($mapping->getMessage('BAPLIE'), $segs, $svc);
130+
$interpreter->prepare($parser->get());
131+
$errors = $interpreter->getErrors();
132+
$segments = [];
133+
foreach ($errors as $err) {
134+
$segments[] = $err['segmentId'];
135+
}
136+
$this->assertContains('UNB', $segments);
137+
$this->assertContains('UNH', $segments);
138+
}
139+
99140
public function testTooManyElements()
100141
{
101142
$edi = "UNB+UNOA:2+LBCTI:01+OOCLIES:ZZ:AA:DD+160414:0307+1865'UNZ+1+1865+TEST+TEST'";

0 commit comments

Comments
 (0)