use crate::v004010::*;
#[test]
fn test_310_transmission() {
// TODO transmission does not work yet
let edi = r#"ISA*00* *00* *ZZ*SOURCE *02*TARGET *220101*1449*U*00401*000011566*0*P*>~GS*IO*SOURCE*TARGET*20220101*1449*61716*X*004010~ST*310*35353~B3*3*IDENTIFIER123*IDENTIFIER123*MX**20220830*00****WHT*20220830*PP~B2A*00*BL~N9*BN*1XXX011114*BOOKING NUMBER~N9*BM*IDENTIFIER123*BILL OF LADING NUMBER~N9*R1*MSK-BL-1.0*INTERNAL GUIDELINE VERSION NUMBER~N9*VT*9V8896*VESSEL CALL-SIGN~V1*9786774*POLAR ECUADOR*SG*234N****L~Y2*1***45G1~N1*SH*MADERAS ARAUCO S.A.*25*940924821~N3*EL GOLF 150~N4*LAS CONDES**7550107*CL~N1*CN*ARAUCO NORTH AMERICA INC*25*100992847~N3*PERIMETER CENTER TER NE 400~N4*ATLANTA*GA*30346*US~N1*N1*GEODIS USA INC*25*12323242~N3*LACROSS RD 4995~N4*NORTH CHARLESTON*SC*29406*US~N1*CA*WHATEVER*2*WHT~N3*ESPLANADEN 50~N4*COPENHAGEN K**1098*DK~R4*L*UN*CLSVE*SAN VICENTE*CL***BI~DTM*140*20220830*003000*LT~R4*D*UN*USBAL*BALTIMORE*US***MD~DTM*140*20220101*120000*LT~R4*T*UN*PAMIT*MANZANILLO*PA~DTM*140*20220101*130000*LT~C8***WHT CODE: 4411.1400~C8***EMISION SWB.~C8***CHARGE_TYPE-BASIC FREIGHT; PAYER-SHIPPER; TERM-PREPAID;~LX*1~N7*TCNU*6849731*17007*G*3810*28690**31.32*X*S*CN*****M*K*1****45G1~M7*MLCL0008628~L0*1***17007*G*31.32*X*36*PKG**K~L5*1*1 X 40'HC 21 PACKAGES WITH 31.320 MCUB AND 16.837*2313432*Z~L5*1*NET WEIGHT . MOULDINGS OF MEDIUM DENSITY FIBERBO~L5*1*ARD ( MECHANICALLY WORKED (WITH SURFACED COVER ED~L5*1*) . REF.INT: 111111 . ALSO CONSIGNEE: ATTN: AW~L3*17007*G*******42.42*X*1*K~L1*1*3371*FR*316100****COF***P******1*NR~C3*USD~L1*2*875*FR*87900****BUA***P******1*NR~C3*USD~L1*3*29*FR*2800*******P******1*NR~C3*USD~SE*49*32353~GE*1*61916~IEA*1*000061216~"#;
let (rest, obj) = Transmission::<_310>::parse(edi).unwrap();
println!("{obj:?}");
assert!(rest.is_empty())
}
#[test]
fn test_chars() {
let str = "L5*1*NET WEIGHT . MOULDINGS OF MEDIUM DENSITY FIBERBO~\n";
for x in str.chars() {
if x != '*' && (x.is_alphanumeric() || x.is_whitespace() || x.is_ascii_punctuation()) {
println!("{x} match");
} else {
println!("{x} not a char - filtered");
}
}
}
#[test]
fn test_310_parse() {
let edi = r#"ST*310*35353~
B3*3*IDENTIFIER123*IDENTIFIER123*MX**20220830*00****WHT*20220830*PP~
B2A*00*BL~
N9*BN*1XXX011114*BOOKING NUMBER~
N9*BM*IDENTIFIER123*BILL OF LADING NUMBER~
N9*R1*MSK-BL-1.0*INTERNAL GUIDELINE VERSION NUMBER~
N9*VT*9V8896*VESSEL CALL-SIGN~
V1*9786774*POLAR ECUADOR*SG*234N****L~
Y2*1***45G1~
N1*SH*MADERAS ARAUCO S.A.*25*940924821~
N3*EL GOLF 150~
N4*LAS CONDES**7550107*CL~
N1*CN*ARAUCO NORTH AMERICA INC*25*100992847~
N3*PERIMETER CENTER TER NE 400~
N4*ATLANTA*GA*30346*US~
N1*N1*GEODIS USA INC*25*12323242~
N3*LACROSS RD 4995~
N4*NORTH CHARLESTON*SC*29406*US~
N1*CA*WHATEVER*2*WHT~
N3*ESPLANADEN 50~
N4*COPENHAGEN K**1098*DK~
R4*L*UN*CLSVE*SAN VICENTE*CL***BI~
DTM*140*20220830*003000*LT~
R4*D*UN*USBAL*BALTIMORE*US***MD~
DTM*140*20220101*120000*LT~
R4*T*UN*PAMIT*MANZANILLO*PA~
DTM*140*20220101*130000*LT~
C8***WHT CODE: 4411.1400~
C8***EMISION SWB.~
C8***CHARGE_TYPE-BASIC FREIGHT; PAYER-SHIPPER; TERM-PREPAID;~
LX*1~
N7*TCNU*6849731*17007*G*3810*28690**31.32*X*S*CN*****M*K*1****45G1~
M7*MLCL0008628~
L0*1***17007*G*31.32*X*36*PKG**K~
L5*1*1 X 40'HC 21 PACKAGES WITH 31.320 MCUB AND 16.837*2313432*Z~
L5*1*NET WEIGHT . MOULDINGS OF MEDIUM DENSITY FIBERBO~
L5*1*ARD ( MECHANICALLY WORKED (WITH SURFACED COVER ED~
L5*1*) . REF.INT: 111111 . ALSO CONSIGNEE: ATTN: AW~
L3*17007*G*******42.42*X*1*K~
L1*1*3371*FR*316100****COF***P******1*NR~
C3*USD~
L1*2*875*FR*87900****BUA***P******1*NR~
C3*USD~
L1*3*29*FR*2800*******P******1*NR~
C3*USD~
SE*49*32353~"#;
let obj = _310::parse(edi).unwrap();
println!("{obj:?}");
assert_eq!(obj.1.st._01, "310");
assert_eq!(obj.1.st._02, "35353");
assert_eq!(obj.1.se._01, "49");
assert_eq!(obj.1.se._02, "32353");
}
#[test]
fn test_310_parse2() {
let edi = r#"ISA*ZZ* *ZZ* *ZZ*XXXXXX999 *01*XXXX135600 *230621*1646*U*00401*000000015*0*P*>~
GS*QO*XXXX*XXXX135600*20230621*1646*15*X*004010~
ST*310*0015~
B3*B*XXXX23PHL999999A*23PHL999999A*PP**20230621*557500****XXXX*20230614*DP~
B2A*00~
N9*BN*3PHL999999*BOOKING NUMBER~
N9*IV*999999999*INTERNAL INVOICE NUMBER~
N9*64*USNYC*PLACE OF PAYMENT~
N9*OC*MRKU9999999*CONTAINER NUMBER~
V1*9644990*MATE*LR*321S~
C3*USD~
Y2*1**DP*45G0****FCL~
N1*BT*XXXXXXX XXXXXXX XXXX*ZZ*100999999~
N3*5800 CHALLENGE DR~
N4*XXXXXXX*TN*38115*US~
N1*SH*XXXXXXX XXXXXXX XXXX*ZZ*100999999~
N3*5800 CHALLENGE DR~
N4*XXXXXXX*TN*38115*US~
N1*CN*XXXXXXX SOUTH PACIFIC PTY LTD*ZZ*200939897~
N3*2 CARIBBEAN DRIVE~
N4*SCORESBY*VI*3179*AU~
R4*R*UN*USMEM*XXXXXXX TN US*US***TN~
R4*L*UN*USLGB*LONG BEACH, CA, US*US***CA~
DTM*370*20230614~
R4*D*UN*AUMEL*MELBOURNE, VIC, AU*AU~
R4*E*UN*AUMEL*MELBOURNE AU*AU~
LX*1~
L0*1*1*FR*14999.99*G*50*X*30*PCS**K~
L1*1*80*FC*8000****TBN***P*INTERMODAL FUEL S.~
C3*USD*0001*USD*USD~
LX*2~
N7*MRKU*9999999*14999.99*G****50*X**S1*XXXX*****K*3*DP***45G0~
QTY*39*30*PC~
L0*2*1*FR*14999.99*G*50*X****K**30*PCS*N~
L5*2*ENGINES AND MOTOR PARTS~
L1*2*9999*FC*999900****BAS***P*OCEANFREIGHT~
C3*USD*0001*USD*USD~
L1*2*9999*FC*999900****BSC***P*BUNKER ADJ FACTOR~
C3*USD*0001*USD*USD~
L3*14999.99*G*14999.99*AI*557500****50*X*1*K~
SE*39*0015~
GE*1*15~
IEA*1*000000015~
"#;
let (rest, obj) = Transmission::<_310>::parse(edi).unwrap();
assert!(rest.is_empty());
assert_eq!(obj.iea._02, "000000015");
println!("{obj:?}");
}
#[test]
fn test_310_parse3() {
let edi = r#"ISA*00* *00* *ZZ*XXXXXX *02*XXXX *230608*2335*U*00401*000145269*0*P*>~
GS*IO*XXXXXX*XXXX*20230608*2335*145269*X*004010~
ST*310*69187~
B3*3*XXXX33SYD00XXXXX*XXXX33SYD00XXXXX*MX**20230614*00****XXXX*20230614*PD~
B2A*00*BL~
N9*BM*XXXX33SYD00XXXXX*BILL OF LADING NUMBER~
N9*SI*AEYEHEARY*SHIPPERS REFERENCE~
N9*R1*XXXX-BL-1.0*INTERNAL GUIDELINE VERSION NUMBER~
N9*VT*VRKZ9*VESSEL CALL-SIGN~
V1*9355355*SAFMARINE BAYETE*HK*324N****L~
Y2*2***45G1~
N1*FW*XXXXXXX INTL PTY LTD (NSW)*25*200944231~
N3*MCPHERSON ST 10-14~
N4*BANKSMEADOW*NS*2019*AU~
N1*SH*CNH AUSTRALIA*25*200928959~
N3*31-53 KURRAJONG RD~
N4*SAINT MARYS*NS*2760*AU~
N1*CN*CNH WICHITA*25*100973430~
N3*S HOOVER RD 3301~
N4*WICHITA*KS*67215*US~
N1*N1*FEDEX TRADE NETWORKS INC*25*100911784~
N3*BUSSE RD 1101~
N4*ELK GROVE VILLAGE*IL*60007*US~
N1*CA*HAMBURG SUD A/S*2*XXXX~
N3*ESPLANADEN 50~
N4*COPENHAGEN K**1098*DK~
R4*L*UN*AUSYD*SYDNEY*AU***NS~
DTM*140*20230614*040000*LT~
R4*D*UN*USPHL*PHILADELPHIA,PA*US***PA~
DTM*140*20230725*110000*LT~
R4*E*UN*USLBD*LEBANON, IN*US***IN~
C8***BN=3SYD009999~
C8***WHEN HANDLING THIS SHIPMENT, YOU ARE STRICTLY PROHIBITED|FRO~
C8C*M UTILIZING OR OTHERWISE DEALING WITH ANY SPECIALLY|DESIGNAT~
C8C*ED NATIONAL (SDN) OR PROHIBITED VESSEL AS|DESIGNATED BY THE ~
C8C*OFFICE OF FOREIGN ASSETS CONTROL (OFAC)|OF THE U.S DEPARTMEN~
C8***FOUND AT HTTP://WWW.TREAS.GOV/OFFICES/ENFORCEMENT/OFAC/SDN.|~
C8C*AN ADDITIONAL LIST OF ENTITIESAND VESSELS OF CONCERN THAT|YO~
C8C*U ARE FURTHER PROHIBITED FROM UTILIZING OR OTHERWISE|DEALING~
C8C*WITH IS SET FORTH AT|HTTP://WWW.XXXXXXX.COM/SERVICES/OCEA~
C8***BASIC FREIGHT: COLLECT~
LX*1~
N7*XXXX*5119399*6102*G*3720*28780**17.308*X*S*CN*****M*K*0****45G1~
M7*0325999~
L0*1***6102*G*17.308*X*16*PKG**K~
L5*1*AGRICULTURAL MACHINERY*843290*Z**EI REF:5950099999~
LX*2~
N7*XXXX*9447680*6678*G*3950*26530**19.488*X*S*CN*****M*K*0****45G1~
M7*0325964~
L0*1***6678*G*19.488*X*15*PKG**K~
L5*1*AGRICULTURAL MACHINERY*843290*Z**EI REF:5950099999~
L3*12780*G*******36.796*X*2*K~
SE*51*69187~
GE*1*145269~
IEA*1*000145269~
"#;
let (rest, obj) = Transmission::<_310>::parse(edi).unwrap();
assert!(rest.is_empty());
assert_eq!(obj.iea._02, "000145269");
println!("{obj:?}");
}