/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ċ Ġ* ĠĊ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 4 - ĠHigh - Mob ility ĠGmbH Ġ( https :// high - mob ility . com ) Ċ Ġ* ĠĊ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* ĠĊ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* ĠĊ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġcom . high mob ility . auto api Ċ Ċ import Ġcom . high mob ility . auto api . property . Property Ċ import Ġcom . high mob ility . value . Bytes Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ Ċ class ĠK Par king Ticket Test Ġ: ĠBaseTest () Ġ{ ĊĠĠĠ Ġval Ġbytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 1 " Ġ+ ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 0 0 0 4 0 1 0 0 0 1 0 0 " Ġ+ Ġ Ġ// ĠPark ing Ġticket Ġhas Ġended ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 2 0 0 1 1 0 1 0 0 0 E 4 2 6 5 7 2 6 c 6 9 6 e 2 0 5 0 6 1 7 2 6 b 6 9 6 e 6 7 " Ġ+ Ġ Ġ// ĠOperator Ġname Ġis Ġ' Ber lin ĠPark ing ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 3 0 0 0 D 0 1 0 0 0 A 3 6 3 4 3 8 3 9 4 1 4 2 3 4 3 2 3 3 3 3 " Ġ+ Ġ Ġ// ĠOperator Ġticket ĠID Ġis Ġ' 6 4 8 9 AB 4 2 3 3 ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 4 0 0 0 B 0 1 0 0 0 8 0 0 0 0 0 1 5 9 8 9 df ca 3 0 " Ġ+ Ġ Ġ// ĠPark ing Ġticket Ġstarted Ġat Ġ 1 0 ĠJanuary Ġ 2 0 1 7 Ġat Ġ 1 9 : 3 4 : 2 2 ĠGMT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 5 0 0 0 B 0 1 0 0 0 8 0 0 0 0 0 1 6 dab 1 a 8 5 2 8 " Ġ// ĠPark ing Ġticket Ġended Ġat Ġ 8 . ĠOctober Ġ 2 0 1 9 Ġat Ġ 1 1 : 2 1 : 4 5 ĠGMT ĊĠĠĠ Ġ) ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest State () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= ĠCommand Resolver . resolve ( bytes ) ĊĠĠĠĠĠĠĠ Ġtest State ( command Ġas ĠPark ing Ticket . State ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Builder () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠPark ing Ticket . State . Builder () ĊĠĠĠĠĠĠĠ Ġbuilder . setStatus ( Property ( Par king Ticket . Status . ENDED )) ĊĠĠĠĠĠĠĠ Ġbuilder . set Operator Name ( Property (" Ber lin ĠPark ing ")) ĊĠĠĠĠĠĠĠ Ġbuilder . set Operator Ticket ID ( Property (" 6 4 8 9 AB 4 2 3 3 ")) ĊĠĠĠĠĠĠĠ Ġbuilder . set Ticket StartTime ( Property ( get Calendar (" 2 0 1 7 - 0 1 - 1 0 T 1 9 : 3 4 : 2 2 . 0 0 0 Z "))) ĊĠĠĠĠĠĠĠ Ġbuilder . set Ticket EndTime ( Property ( get Calendar (" 2 0 1 9 - 1 0 - 0 8 T 1 1 : 2 1 : 4 5 . 0 0 0 Z "))) ĊĠĠĠĠĠĠĠ Ġtest State ( builder . build ()) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġprivate Ġfun Ġtest State ( state : ĠPark ing Ticket . State ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( state . status . value Ġ== ĠPark ing Ticket . Status . ENDED ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( state . operator Name . value Ġ== Ġ" Ber lin ĠPark ing ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( state . operator Ticket ID . value Ġ== Ġ" 6 4 8 9 AB 4 2 3 3 ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( date Is Same ( state . ticket StartTime . value , Ġ" 2 0 1 7 - 0 1 - 1 0 T 1 9 : 3 4 : 2 2 . 0 0 0 Z ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( date Is Same ( state . ticket EndTime . value , Ġ" 2 0 1 9 - 1 0 - 0 8 T 1 1 : 2 1 : 4 5 . 0 0 0 Z ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( bytes The Same ( state , Ġbytes )) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Par king Ticket () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Getter Bytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġdefault Getter Ġ= ĠPark ing Ticket . Get Par king Ticket () ĊĠĠĠĠĠĠĠ ĠassertTrue ( default Getter Ġ== Ġdefault Getter Bytes ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( default Getter . getProperty Identifiers (). isEmpty ()) ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġproperty Getter Bytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 0 0 1 0 2 0 3 0 4 0 5 ") ĊĠĠĠĠĠĠĠ Ġval Ġproperty Getter Ġ= ĠPark ing Ticket . Get Par king Ticket ( 0 x 0 1 , Ġ 0 x 0 2 , Ġ 0 x 0 3 , Ġ 0 x 0 4 , Ġ 0 x 0 5 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( property Getter Ġ== Ġproperty Getter Bytes ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( property Getter . getProperty Identifiers () Ġ== ĠBytes (" 0 1 0 2 0 3 0 4 0 5 ")) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Par king Ticket Availability All () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġcreated Ġ= ĠPark ing Ticket . Get Par king Ticket Availability () ĊĠĠĠĠĠĠĠ ĠassertTrue ( created . identifier Ġ== ĠIdentifier . PAR K ING _ TICK ET ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( created . type Ġ== ĠType . GET _ AVAIL ABILITY ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( created . getProperty Identifiers (). isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( created Ġ== Ġbytes ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġset Environment ( Command Resolver . Environment . VE H IC LE ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= ĠCommand Resolver . resolve ( bytes ) Ġas ĠPark ing Ticket . Get Par king Ticket Availability ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . identifier Ġ== ĠIdentifier . PAR K ING _ TICK ET ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . type Ġ== ĠType . GET _ AVAIL ABILITY ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . getProperty Identifiers (). isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved Ġ== Ġbytes ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Par king Ticket Availability Some () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġidentifier Bytes Ġ= ĠBytes (" 0 1 0 2 0 3 0 4 0 5 ") ĊĠĠĠĠĠĠĠ Ġval Ġall Bytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 2 " Ġ+ Ġidentifier Bytes ) ĊĠĠĠĠĠĠĠ Ġval Ġconstructed Ġ= ĠPark ing Ticket . Get Par king Ticket Availability ( identifier Bytes ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( construct ed . identifier Ġ== ĠIdentifier . PAR K ING _ TICK ET ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( construct ed . type Ġ== ĠType . GET _ AVAIL ABILITY ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( construct ed . getProperty Identifiers () Ġ== Ġidentifier Bytes ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( construct ed Ġ== Ġall Bytes ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Construct ed Ġ= ĠPark ing Ticket . Get Par king Ticket Availability ( 0 x 0 1 , Ġ 0 x 0 2 , Ġ 0 x 0 3 , Ġ 0 x 0 4 , Ġ 0 x 0 5 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( construct ed Ġ== Ġsecond Construct ed ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġset Environment ( Command Resolver . Environment . VE H IC LE ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= ĠCommand Resolver . resolve ( all Bytes ) Ġas ĠPark ing Ticket . Get Par king Ticket Availability ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . identifier Ġ== ĠIdentifier . PAR K ING _ TICK ET ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . type Ġ== ĠType . GET _ AVAIL ABILITY ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . getProperty Identifiers () Ġ== Ġidentifier Bytes ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved Ġ== Ġall Bytes ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstart Par king () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 1 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 0 0 0 4 0 1 0 0 0 1 0 1 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 2 0 0 1 1 0 1 0 0 0 E 4 2 6 5 7 2 6 c 6 9 6 e 2 0 5 0 6 1 7 2 6 b 6 9 6 e 6 7 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 3 0 0 0 D 0 1 0 0 0 A 3 6 3 4 3 8 3 9 4 1 4 2 3 4 3 2 3 3 3 3 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 4 0 0 0 B 0 1 0 0 0 8 0 0 0 0 0 1 5 9 8 9 df ca 3 0 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 5 0 0 0 B 0 1 0 0 0 8 0 0 0 0 0 1 6 dab 1 a 8 5 2 8 ") ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġconstructed Ġ= ĠPark ing Ticket . Start Par king (" Ber lin ĠPark ing ", Ġ" 6 4 8 9 AB 4 2 3 3 ", Ġget Calendar (" 2 0 1 7 - 0 1 - 1 0 T 1 9 : 3 4 : 2 2 . 0 0 0 Z "), Ġget Calendar (" 2 0 1 9 - 1 0 - 0 8 T 1 1 : 2 1 : 4 5 . 0 0 0 Z ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( bytes The Same ( construct ed , Ġbytes )) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġset Environment ( Command Resolver . Environment . VE H IC LE ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= ĠCommand Resolver . resolve ( bytes ) Ġas ĠPark ing Ticket . Start Par king ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . operator Name . value Ġ== Ġ" Ber lin ĠPark ing ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved . operator Ticket ID . value Ġ== Ġ" 6 4 8 9 AB 4 2 3 3 ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( date Is Same ( resolved . ticket StartTime . value , Ġ" 2 0 1 7 - 0 1 - 1 0 T 1 9 : 3 4 : 2 2 . 0 0 0 Z ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( date Is Same ( resolved . ticket EndTime . value , Ġ" 2 0 1 9 - 1 0 - 0 8 T 1 1 : 2 1 : 4 5 . 0 0 0 Z ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved Ġ== Ġbytes ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test Ġfun Ġinvalid Start Par king Status Throws () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 1 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 0 0 0 4 0 1 0 0 0 1 CD " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 2 0 0 1 1 0 1 0 0 0 E 4 2 6 5 7 2 6 c 6 9 6 e 2 0 5 0 6 1 7 2 6 b 6 9 6 e 6 7 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 3 0 0 0 D 0 1 0 0 0 A 3 6 3 4 3 8 3 9 4 1 4 2 3 4 3 2 3 3 3 3 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 4 0 0 0 B 0 1 0 0 0 8 0 0 0 0 0 1 5 9 8 9 df ca 3 0 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 5 0 0 0 B 0 1 0 0 0 8 0 0 0 0 0 1 6 dab 1 a 8 5 2 8 ") ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġset Environment ( Command Resolver . Environment . VE H IC LE ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġerror Log Expected Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= ĠCommand Resolver . resolve ( bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( resolved Ġis ĠCommand ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġend Par king () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 1 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 0 0 0 4 0 1 0 0 0 1 0 0 ") ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġconstructed Ġ= ĠPark ing Ticket . End Par king () ĊĠĠĠĠĠĠĠ ĠassertTrue ( bytes The Same ( construct ed , Ġbytes )) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġset Environment ( Command Resolver . Environment . VE H IC LE ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= ĠCommand Resolver . resolve ( bytes ) Ġas ĠPark ing Ticket . End Par king ĊĠĠĠĠĠĠĠ ĠassertTrue ( resolved Ġ== Ġbytes ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test Ġfun Ġinvalid End Par king Status Throws () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠBytes ( COMMAND _ HEADER Ġ+ Ġ" 0 0 4 7 0 1 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 0 0 0 4 0 1 0 0 0 1 CD ") ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġset Environment ( Command Resolver . Environment . VE H IC LE ) ĊĠĠĠĠĊĠĠĠĠĠĠĠ Ġerror Log Expected Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolved Ġ= ĠCommand Resolver . resolve ( bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( resolved Ġis ĠCommand ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }