@@ -75,4 +75,41 @@ public function testDESADV()
7575 $ this ->assertCount (2 , $ interpreter ->getServiceSegments ());
7676 $ this ->assertEquals ([], $ interpreter ->getErrors ());
7777 }
78+
79+ public function testMissingUNTUNZ ()
80+ {
81+ $ edi = "UNB+UNOA:2+LBCTI:01+OOCLIES:ZZ+160414:0307+1865'UNH+1907+BAPLIE:D:95B:UN:SMDG20'BGM++391651645' " ;
82+ $ parser = new Parser ($ edi );
83+ $ mapping = new \EDI \Mapping \MappingProvider ('D95B ' );
84+ $ analyser = new Analyser ();
85+ $ segs = $ analyser ->loadSegmentsXml ($ mapping ->getSegments ());
86+ $ svc = $ analyser ->loadSegmentsXml ($ mapping ->getServiceSegments (3 ));
87+
88+ $ interpreter = new Interpreter ($ mapping ->getMessage ('BAPLIE ' ), $ segs , $ svc );
89+ $ interpreter ->prepare ($ parser ->get ());
90+ $ errors = $ interpreter ->getErrors ();
91+ $ this ->assertCount (2 , $ errors );
92+ $ segments = [];
93+ foreach ($ errors as $ err ) {
94+ $ segments [] = $ err ['segmentId ' ];
95+ }
96+ $ this ->assertEquals (['UNZ ' , 'UNT ' ], $ segments );
97+ }
98+
99+ public function testTooManyElements ()
100+ {
101+ $ edi = "UNB+UNOA:2+LBCTI:01+OOCLIES:ZZ:AA:DD+160414:0307+1865'UNZ+1+1865+TEST+TEST' " ;
102+ $ parser = new Parser ($ edi );
103+ $ mapping = new \EDI \Mapping \MappingProvider ('D95B ' );
104+ $ analyser = new Analyser ();
105+ $ segs = $ analyser ->loadSegmentsXml ($ mapping ->getSegments ());
106+ $ svc = $ analyser ->loadSegmentsXml ($ mapping ->getServiceSegments (3 ));
107+
108+ $ interpreter = new Interpreter ($ mapping ->getMessage ('BAPLIE ' ), $ segs , $ svc );
109+ $ p = $ interpreter ->prepare ($ parser ->get ());
110+ $ errors = $ interpreter ->getErrors ();
111+ $ svcSegs = $ interpreter ->getServiceSegments ();
112+ $ this ->assertCount (0 , $ errors );
113+ $ this ->assertArrayHasKey ('Extension2 ' , $ svcSegs ['interchangeTrailer ' ]);
114+ }
78115}
0 commit comments