/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 - 2 0 2 2 ĠExact pro Ġ( Exact pro ĠSystems ĠLimited ) Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . exact pro . th 2 . codec . xml . utils Ċ Ċ import Ġcom . exact pro . th 2 . common . grpc . Any Message Ċ import Ġcom . exact pro . th 2 . common . grpc . Direction Ċ import Ġcom . exact pro . th 2 . common . grpc . Message Ċ import Ġcom . exact pro . th 2 . common . grpc . Message Group Ċ import Ġcom . exact pro . th 2 . common . grpc . Raw Message Ċ import Ġcom . exact pro . th 2 . common . grpc . Value Ċ import Ġcom . exact pro . th 2 . common . message . message Ċ import Ġcom . exact pro . th 2 . common . value . get Ċ import Ġcom . google . protobuf . ByteString Ċ import Ġorg . opent est 4 j . Assertion Failed Error Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ Ċ fun Ġcreate Raw Message ( xml : ĠString ): ĠMessage Group Ġ= ĠMessage Group ĊĠĠĠ Ġ. newBuilder () ĊĠĠĠ Ġ. add Messages ( ĊĠĠĠĠĠĠĠ ĠAny Message ĊĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠ Ġ. set Raw Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRaw Message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Builder . protocol Ġ= Ġ" XML " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Builder . id Builder . connection Id Builder . session Alias Ġ= Ġ" test _ session _ alias " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= ĠByte String . copyFrom Utf 8 (" <? xml Ġversion =\" 1 . 0 \" Ġencoding =\" UTF - 8 \" ?> \ n $ xml ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ. build () Ċ Ċ fun ĠassertEquals Messages ( expected : ĠMessage , Ġactual : ĠMessage , Ġcheck Metadata : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠ Ġif Ġ( check Metadata ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected . metadata . message Type , Ġactual . metadata . message Type , Ġ" Not Ġequals Ġmessage Ġtypes ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected . metadata . protocol , Ġactual . metadata . protocol , Ġ" Not Ġequals Ġprotocols ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected . metadata . id , Ġactual . metadata . id , Ġ" Not Ġequals Ġids ") ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠ Ġexpected . fields Count , Ġactual . fields Count , ĊĠĠĠĠĠĠĠ Ġ" Wrong Ġcount Ġfields Ġin Ġactual Ġmessage " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġexpected . fields Map . forEach Ġ{ Ġ( fieldName , Ġexpected Value ) Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġactual . fields Map [ fieldName ] ĊĠĠĠĠĠĠĠ ĠassertNotNull ( actual Value , Ġ" Field Ġwith Ġname Ġ'$ fieldName ' Ġshouldn 't Ġbe Ġnull ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals Value ( expected Value , Ġactual Value , Ġcheck Metadata ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAssertion Failed Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertion Failed Error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error Ġin Ġfield Ġwith Ġname Ġ'$ fieldName '. \ n ${ e . message }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . expected , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . actual , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . cause ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠassertEquals Value ( expected : ĠValue , Ġactual : ĠValue , Ġcheck Metadata : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠ ĠassertEquals ( expected . kind Case , Ġactual . kind Case , Ġ" Different Ġvalue Ġtypes ") ĊĊĠĠĠ Ġwhen Ġ( actual . kind Case ) Ġ{ ĊĠĠĠĠĠĠĠ ĠValue . Kind Case . SIMPLE _ VALUE Ġ-> ĠassertEquals ( expected . simple Value , Ġactual . simple Value ) ĊĠĠĠĠĠĠĠ ĠValue . Kind Case . LIST _ VALUE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected . list Value . values Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual . list Value . values Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wrong Ġcount Ġof Ġelement Ġin Ġvalue " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected . list Value . values List ?. forEach Indexed Ġ{ Ġi , Ġit Ġ-> ĠassertEquals Value ( it , Ġactual . list Value [ i ]) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠValue . Kind Case . MESSAGE _ VALUE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals Messages ( expected . message Value , Ġactual . message Value , Ġcheck Metadata ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" Unknown Ġvalue Ġtype ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġparsed Message ( message Type : ĠString ): ĠMessage . Builder Ġ= Ġmessage ( message Type ). apply Ġ{ ĊĠĠĠ Ġmetadata Builder . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġprotocol Ġ= Ġ" XML " ĊĠĠĠĠĠĠĠ Ġid Builder . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= ĠDirection . FIRST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Id Builder . session Alias Ġ= Ġ" test _ session _ alias " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }