package Ġuk . co . b acon i . pk a . common . open l db ws . responses Ċ Ċ import Ġuk . co . b acon i . pk a . common . open l db ws . depart ures . Depart ure Board Ċ import Ġuk . co . b acon i . pk a . common . open l db ws . depart ures . Depart ure Board . Companion . depart ure Board Ċ import Ġuk . co . b acon i . pk a . common . open l db ws . requests . Depart ure Board Type Ċ import Ġuk . co . b acon i . pk a . common . open l db ws . requests . Depart ure Board Type . Depart ure Board With Details Ċ import Ġuk . co . b acon i . pk a . common . open l db ws . services . Service Ċ import Ġuk . co . b acon i . pk a . common . open l db ws . services . Service Location Ċ import Ġuk . co . b acon i . pk a . common . soap . body Ċ import Ġuk . co . b acon i . pk a . common . soap . envelope Ċ import Ġuk . co . b acon i . pk a . common . soap . tag Ċ import Ġuk . co . b acon i . pk a . common . xml . Xml Deserializer Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . expect Ċ Ċ open Ġclass ĠGet Depart ure Board Response Test Ġ{ ĊĊĠĠĠ Ġopen Ġval Ġtype : ĠDep art ure Board Type Ġ= ĠDep art ure Board Type . Depart ure Board ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġbe Ġable Ġto Ġde serial ise Ġexample Ġresponse Ġof ĠShe ff ield Ġto ĠMe adow hall `() Ġ{ ĊĠĠĠĠĠĠĠ Ġexpect ( expected ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠXml Deserializer ( she ff ield To Me adow hall ). envelope Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody ( type . response Tag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag ( type . response Tag , Ġ" Get Station Board Result ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepart ure Board () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġexpected (): ĠDep art ure Board Ġ= ĠDep art ure Board ( ĊĠĠĠĠĠĠĠ Ġgenerated At Ġ= Ġ" 2 0 1 9 - 0 1 - 1 3 T 1 3 : 5 1 : 1 7 . 1 0 6 9 0 2 + 0 0 : 0 0 ", ĊĠĠĠĠĠĠĠ Ġlocation Name Ġ= Ġ" She ff ield ", ĊĠĠĠĠĠĠĠ Ġc rs Ġ= Ġ" SH F ", ĊĠĠĠĠĠĠĠ Ġfilter Location Name Ġ= Ġ" Me adow hall ", ĊĠĠĠĠĠĠĠ Ġfilter C rs Ġ= Ġ" M HS ", ĊĠĠĠĠĠĠĠ Ġplatform Available Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġn rc c Messages Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Dis ruption Ġat ĠDon caster ." ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġtrain Services Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠService ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscheduled Depart ure Time Ġ= Ġ" 1 7 : 1 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Depart ure Time Ġ= Ġ" Delayed ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= Ġ" Trans P enn ine ĠExpress ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Code Ġ= Ġ" TP ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice Type Ġ= Ġ" train ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice ID Ġ= Ġ" KN c 2 8 8 1 g 1 n Xc 3 m gp n 3 Ba 1 w ==", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret ail Service Id Ġ= Ġ" TP 6 0 4 4 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService Location ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Name Ġ= Ġ" Man che ster ĠAir port ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc rs Ġ= Ġ" MI A " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService Location ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Name Ġ= Ġ" Cle eth or pes ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc rs Ġ= Ġ" CLE " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġshe ff ield To Me adow hall : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ( """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| <? xml Ġversion =" 1 . 0 " Ġencoding =" utf - 8 "?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|< soap : Envelope ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġxmlns : soap =" http :// www . w 3 . org / 2 0 0 3 / 0 5 / soap - envelope " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġxmlns : xsi =" http :// www . w 3 . org / 2 0 0 1 / XMLSchema - instance " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġxmlns : xsd =" http :// www . w 3 . org / 2 0 0 1 / XMLSchema "> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ< soap : Body > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ< ${ type . response Tag } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġxmlns =" http :// th ales group . com / RT TI / 2 0 1 7 - 1 0 - 0 1 / l db /"> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ< Get Station Board Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt =" http :// th ales group . com / RT TI / 2 0 1 2 - 0 1 - 1 3 / l db / types " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt 6 =" http :// th ales group . com / RT TI / 2 0 1 7 - 0 2 - 0 2 / l db / types " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt 7 =" http :// th ales group . com / RT TI / 2 0 1 7 - 1 0 - 0 1 / l db / types " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt 4 =" http :// th ales group . com / RT TI / 2 0 1 5 - 1 1 - 2 7 / l db / types " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt 5 =" http :// th ales group . com / RT TI / 2 0 1 6 - 0 2 - 1 6 / l db / types " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt 2 =" http :// th ales group . com / RT TI / 2 0 1 4 - 0 2 - 2 0 / l db / types " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġxmlns : lt 3 =" http :// th ales group . com / RT TI / 2 0 1 5 - 0 5 - 1 4 / l db / types "> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : generated At > 2 0 1 9 - 0 1 - 1 3 T 1 3 : 5 1 : 1 7 . 1 0 6 9 0 2 + 0 0 : 0 0 </ lt 4 : generated At > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : location Name > She ff ield </ lt 4 : location Name > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : crs > SH F </ lt 4 : crs > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : filter Location Name > Me adow hall </ lt 4 : filter Location Name > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : filter crs > M HS </ lt 4 : filter crs > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : n rc c Messages > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ< lt : message > Dis ruption Ġat ĠDon caster .</ lt : message > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ</ lt 4 : n rc c Messages > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 4 : platform Available > true </ lt 4 : platform Available > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ< lt 7 : train Services > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : service > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : std > 1 7 : 1 1 </ lt 4 : std > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : et d > Delayed </ lt 4 : et d > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : operator > Trans P enn ine ĠExpress </ lt 4 : operator > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : operator Code > TP </ lt 4 : operator Code > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : service Type > train </ lt 4 : service Type > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : service ID > KN c 2 8 8 1 g 1 n Xc 3 m gp n 3 Ba 1 w == </ lt 4 : service ID > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 5 : rs id > TP 6 0 4 4 0 0 </ lt 5 : rs id > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 5 : origin > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : location > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : location Name > Man che ster ĠAir port </ lt 4 : location Name > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : crs > MI A </ lt 4 : crs > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 4 : location > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 5 : origin > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 5 : destination > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : location > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : location Name > Cle eth or pes </ lt 4 : location Name > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 4 : crs > CLE </ lt 4 : crs > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 4 : location > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 5 : destination > """ Ġ+ Ġif ( type Ġ== ĠDep art ure Board With Details ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ""" | ĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : sub sequent Calling Points > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : calling Point List > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : calling Point > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : location Name > Me adow hall </ lt 7 : location Name > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : crs > M HS </ lt 7 : crs > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : st > 1 7 : 1 6 </ lt 7 : st > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< lt 7 : et > Delayed </ lt 7 : et > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 7 : calling Point > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 7 : calling Point List > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ</ lt 7 : sub sequent Calling Points > Ġ""" Ġ} Ġelse Ġ{ Ġ"" Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠ Ġ""" | ĠĠĠĠĠĠĠĠĠ Ġ</ lt 7 : service > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ</ lt 7 : train Services > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ</ Get Station Board Result > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ</ ${ type . response Tag }> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ</ soap : Body > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| </ soap : Envelope > ĊĠĠĠĠĠĠĠ Ġ""" ). trim Margin () Ċ }