package Ġno . nav . eh an del . kan al Ċ Ċ import Ġcom . github . m ichael bull . result . getError OrElse Ċ import Ġcom . github . m ichael bull . result . getOrElse Ċ import Ġno . d ifi . commons . ub l 2 1 . jax b . Forecast Type Ċ import Ġno . d ifi . commons . ub l 2 1 . jax b . Order Type Ċ import Ġno . d ifi . ve fa . pe pp ol . common . model . Header Ċ import Ġno . nav . eh an del . kan al . common . constants . M DC _ CALL _ ID Ċ import Ġno . nav . eh an del . kan al . common . functions . random Uuid Ċ import Ġno . nav . eh an del . kan al . common . models . ErrorMessage Ċ import Ġno . nav . eh an del . kan al . helpers . getResource Ċ import Ġno . nav . eh an del . kan al . services . s bd . Standard Business Document Generator Ċ import Ġorg . am sh ove . k lu ent .` should Ġequal ` Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . am sh ove . k lu ent . should Not Be Empty Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . slf 4 j . M DC Ċ Ċ class ĠStandard Business Document Generator Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġs bd Generator Ġ= ĠStandard Business Document Generator () ĊĠĠĠ Ġprivate Ġval Ġcall Id Ġ= Ġrandom Uuid () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠM DC . put ( M DC _ CALL _ ID , Ġcall Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġa Ġvalid Ġdocument , Ġshould Ġgenerate Ġvalid ĠS BD `() Ġ{ ĊĠĠĠĠĠĠĠ Ġs bd Generator . run Positive Test < Order Type >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ outbound / outbound - valid - order - no - s bd h . xml " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( header , Ġdocument ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( header ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . identifier Ġshould Equal Ġ" 9 9 0 8 : 8 8 9 6 4 0 7 8 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver . identifier Ġshould Equal Ġ" 9 9 0 8 : 8 8 9 6 4 0 7 8 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess . identifier Ġshould Equal Ġ" urn : www . c en b ii . eu : profile : b ii 2 8 : ver 2 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument Type . identifier Ġshould Equal Ġ" urn : oasis : names : specification : ub l : schema : xsd : Order - 2 :: Order ## urn : www . c en b ii . eu : transaction : bi itr ns 0 0 1 : ver 2 . 0 : extended : urn : www . pe pp ol . eu : bis : pe pp ol 2 8 a : ver 1 . 0 : extended : urn : www . d ifi . no : eh f : ord re : ver 1 . 0 :: 2 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( instance Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstandard Ġshould Equal Ġ" urn : oasis : names : specification : ub l : schema : xsd : Order - 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġshould Equal Ġ" Order " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġshould Equal Ġ" 2 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier . identifier Ġshould Equal Ġcall Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . should Not Be Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġa Ġvalid Ġdocument Ġwith Ġv 3 Ġscheme ĠID , Ġshould Ġreturn Ġa Ġvalid ĠS BD `() Ġ{ ĊĠĠĠĠĠĠĠ Ġs bd Generator . run Positive Test < Order Type >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ outbound / outbound - valid - order - scheme id - v 3 - no - s bd h . xml " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( header , Ġdocument ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( header ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . identifier Ġshould Equal Ġ" 0 1 9 2 : 8 8 9 6 4 0 7 8 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver . identifier Ġshould Equal Ġ" 0 1 9 2 : 8 8 9 6 4 0 7 8 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess . identifier Ġshould Equal Ġ" urn : www . c en b ii . eu : profile : b ii 2 8 : ver 2 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument Type . identifier Ġshould Equal Ġ" urn : oasis : names : specification : ub l : schema : xsd : Order - 2 :: Order ## urn : www . c en b ii . eu : transaction : bi itr ns 0 0 1 : ver 2 . 0 : extended : urn : www . pe pp ol . eu : bis : pe pp ol 2 8 a : ver 1 . 0 : extended : urn : www . d ifi . no : eh f : ord re : ver 1 . 0 :: 2 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( instance Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstandard Ġshould Equal Ġ" urn : oasis : names : specification : ub l : schema : xsd : Order - 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġshould Equal Ġ" Order " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġshould Equal Ġ" 2 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier . identifier Ġshould Equal Ġcall Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . should Not Be Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġan Ġinvalid Ġpayload , Ġshould Ġreturn Ġparse Ġerror Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġs bd Generator . run Negative Test < Order Type >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Path Ġ= Ġ"/ outbound / outbound - invalid - payload . json ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ErrorMessage Ġ= ĠError Message . Standard Business Document . Failed To Parse Document Type ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġan Ġunhandled Ġdocument Ġtype , Ġshould Ġreturn Ġinvalid Ġdocument Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġs bd Generator . run Negative Test < Forecast Type >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Path Ġ= Ġ"/ outbound / outbound - valid - invoice - no - s bd h . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ErrorMessage Ġ= ĠError Message . Standard Business Document . Invalid Document Type ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġan Ġinvalid Ġdocument Ġwith Ġmissing Ġrequired Ġvalues , Ġshould Ġreturn Ġerror Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġs bd Generator . run Negative Test < Order Type >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Path Ġ= Ġ"/ outbound / outbound - invalid - order - missing - required - values - no - s bd h . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ErrorMessage Ġ= ĠError Message . Standard Business Document . Missing Required Values From Document ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġa Ġdocument Ġwith Ġan Ġinvalid Ġscheme ĠID , Ġshould Ġreturn Ġerror Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġs bd Generator . run Negative Test < Order Type >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Path Ġ= Ġ"/ outbound / outbound - invalid - order - invalid - scheme id - no - s bd h . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected ErrorMessage Ġ= ĠError Message . Standard Business Document . Invalid Scheme Id For Participant ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠT > ĠStandard Business Document Generator . run Positive Test ( ĊĠĠĠĠĠĠĠ Ġpayload Path : ĠString , ĊĠĠĠĠĠĠĠ Ġvalidate : Ġ( Pair < Header , ĠString >) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . generate Standard Business Document < T >( payload Path . getResource ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getOrElse Ġ{ Ġthrow ĠIllegalStateException (" should Ġnot Ġreturn Ġerror ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run Ġ{ Ġvalidate ( this ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠT > ĠStandard Business Document Generator . run Negative Test ( ĊĠĠĠĠĠĠĠ Ġpayload Path : ĠString , ĊĠĠĠĠĠĠĠ Ġexpected ErrorMessage : ĠError Message ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . generate Standard Business Document < T >( payload Path . getResource ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getError OrElse Ġ{ Ġthrow ĠIllegalStateException (" should Ġreturn Ġerror ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` should Ġequal `( expected ErrorMessage ) ĊĠĠĠ Ġ} Ċ } Ċ