@@ -28,11 +28,29 @@ public function testCOARRI()
28
28
$ interpreter = new Interpreter ($ mapping ->getMessage ('COARRI ' ), $ segs , $ svc );
29
29
$ interpreter ->prepare ($ parser ->get ());
30
30
31
- $ this ->assertCount (5 , $ interpreter ->getMessages ());
31
+ $ this ->assertCount (3 , $ interpreter ->getMessages ()); //2 + service
32
32
$ this ->assertCount (0 , $ interpreter ->getErrors ());
33
33
$ this ->assertCount (2 , $ interpreter ->getServiceSegments ());
34
34
}
35
35
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
+
36
54
public function testBAPLIE ()
37
55
{
38
56
$ parser = new Parser (__DIR__ . "/../files/D95BBAPLIE.edi " );
@@ -70,6 +88,9 @@ public function testDESADV()
70
88
"JSON does not match expected output "
71
89
);
72
90
91
+ $ this ->assertEquals (3152 , strlen ($ interpreter ->getJson ()));
92
+ $ this ->assertEquals (8379 , strlen ($ interpreter ->getJson (true )));
93
+
73
94
$ this ->assertCount (2 , $ interpreter ->getMessages ());
74
95
$ this ->assertCount (0 , $ interpreter ->getErrors ());
75
96
$ this ->assertCount (2 , $ interpreter ->getServiceSegments ());
@@ -96,6 +117,26 @@ public function testMissingUNTUNZ()
96
117
$ this ->assertEquals (['UNZ ' , 'UNT ' ], $ segments );
97
118
}
98
119
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
+
99
140
public function testTooManyElements ()
100
141
{
101
142
$ edi = "UNB+UNOA:2+LBCTI:01+OOCLIES:ZZ:AA:DD+160414:0307+1865'UNZ+1+1865+TEST+TEST' " ;
0 commit comments