@@ -75,4 +75,41 @@ public function testDESADV()
75
75
$ this ->assertCount (2 , $ interpreter ->getServiceSegments ());
76
76
$ this ->assertEquals ([], $ interpreter ->getErrors ());
77
77
}
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
+ }
78
115
}
0 commit comments