@@ -115,6 +115,86 @@ public function testMissingUNTUNZ()
115
115
$ this ->assertSame (['UNZ ' , 'UNT ' ], $ segments );
116
116
}
117
117
118
+ public function testOrderError ()
119
+ {
120
+ $ edi = file_get_contents (__DIR__ . '/../files/example_order_error.edi ' );
121
+ $ parser = new Parser ($ edi );
122
+ $ mapping = new \EDI \Mapping \MappingProvider ('D95B ' );
123
+ $ analyser = new Analyser ();
124
+ $ segs = $ analyser ->loadSegmentsXml ($ mapping ->getSegments ());
125
+ $ svc = $ analyser ->loadSegmentsXml ($ mapping ->getServiceSegments (3 ));
126
+
127
+ $ interpreter = new Interpreter ($ mapping ->getMessage ('ORDERS ' ), $ segs , $ svc );
128
+ /** @noinspection UnusedFunctionResultInspection */
129
+ $ interpreter ->prepare ($ parser ->get ());
130
+ $ this ->assertSame (
131
+ [
132
+ 0 => 'There \'s a character not escaped with ? in the data; string :::H-Vollmilch 3,5% ?*?*Marke?*?*:1l Tertra mit Drehverschluss ' ,
133
+ ],
134
+ $ parser ->errors ()
135
+ );
136
+
137
+ $ errors = $ interpreter ->getErrors ();
138
+ $ this ->assertCount (3 , $ errors );
139
+ $ segments = [];
140
+ foreach ($ errors as $ err ) {
141
+ $ segments [] = $ err ['segmentId ' ];
142
+ }
143
+ $ this ->assertSame (['IMD ' , 'IMD ' , 'IMD ' ], $ segments );
144
+
145
+ $ this ->assertCount (2 , $ interpreter ->getMessages ());
146
+
147
+ $ this ->assertContains ('"messageHeader" ' , $ interpreter ->getJson (true ));
148
+ $ this ->assertContains ('"interchangeHeader" ' , $ interpreter ->getJsonServiceSegments (true ));
149
+
150
+ $ arrayy = $ interpreter ->getArrayy ();
151
+ $ this ->assertSame (
152
+ 'Butter 40x250g Alu ' ,
153
+ $ arrayy ->get ('0.SG25.0.itemDescription.itemDescription.itemDescription ' )
154
+ );
155
+
156
+ $ arrayy = $ interpreter ->getArrayyServiceSegments ();
157
+ $ this ->assertCount (
158
+ 13 ,
159
+ $ arrayy ->get ('interchangeHeader ' )
160
+ );
161
+ }
162
+
163
+ public function testOrderOk ()
164
+ {
165
+ $ edi = file_get_contents (__DIR__ . '/../files/example_order_ok.edi ' );
166
+ $ parser = new Parser ($ edi );
167
+ $ mapping = new \EDI \Mapping \MappingProvider ('D95B ' );
168
+ $ analyser = new Analyser ();
169
+ $ segs = $ analyser ->loadSegmentsXml ($ mapping ->getSegments ());
170
+ $ svc = $ analyser ->loadSegmentsXml ($ mapping ->getServiceSegments (3 ));
171
+
172
+ $ interpreter = new Interpreter ($ mapping ->getMessage ('ORDERS ' ), $ segs , $ svc );
173
+ /** @noinspection UnusedFunctionResultInspection */
174
+ $ interpreter ->prepare ($ parser ->get ());
175
+ $ this ->assertSame ([], $ parser ->errors ());
176
+
177
+ $ errors = $ interpreter ->getErrors ();
178
+ $ this ->assertCount (0 , $ errors );
179
+
180
+ $ this ->assertCount (2 , $ interpreter ->getMessages ());
181
+
182
+ $ this ->assertContains ('"messageHeader" ' , $ interpreter ->getJson (true ));
183
+ $ this ->assertContains ('"interchangeHeader" ' , $ interpreter ->getJsonServiceSegments (true ));
184
+
185
+ $ arrayy = $ interpreter ->getArrayy ();
186
+ $ this ->assertSame (
187
+ 'Butter 40x250g Alu ' ,
188
+ $ arrayy ->get ('0.SG25.0.itemDescription.itemDescription.itemDescription ' )
189
+ );
190
+
191
+ $ arrayy = $ interpreter ->getArrayyServiceSegments ();
192
+ $ this ->assertCount (
193
+ 13 ,
194
+ $ arrayy ->get ('interchangeHeader ' )
195
+ );
196
+ }
197
+
118
198
public function testMissingUNBUNH ()
119
199
{
120
200
$ edi = "UNT+30+1907'UNZ+1+1865' " ;
0 commit comments