package Ġcom . uuid . calculator . controller Ċ Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ import Ġorg . springframework . boot . test . web . client . Test Rest Template Ċ import Ġorg . springframework . boot . web . server . Local Server Port Ċ import Ġorg . springframework . http . HttpHeaders Ċ import Ġorg . sky sc ream er . json assert . JSON Assert Ċ import Ġorg . springframework . http . Http Entity Ċ import Ġorg . springframework . http . HttpMethod Ċ import Ġorg . springframework . http . HttpStatus ĊĊ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest ( web Environment Ġ= ĠSpring Boot Test . Web Environment . RANDOM _ PORT ) Ċ class ĠCalculator Controller Tests Ġ{ ĊĊĠĠĠ Ġ@ Local Server Port ĊĠĠĠ Ġprivate Ġval Ġport : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġvar Ġrest Template Ġ= ĠTest Rest Template () ĊĊĠĠĠ Ġvar Ġheaders Ġ= ĠHttp Headers () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ return _ correct _ uuid () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= ĠHttp Entity < String >( null , Ġheaders ) ĊĠĠĠĠĠĠĠ Ġval Ġmost Sign Bits Ġ= Ġ" 4 6 4 4 4 1 9 9 0 4 5 5 7 4 9 9 4 6 9 " ĊĠĠĠĠĠĠĠ Ġval Ġleast Sign Bits Ġ= Ġ"- 9 1 5 5 1 2 0 9 1 4 5 6 3 6 5 6 9 4 2 " ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrest Template . exchange ( create URL With Port ("/ uuid /$ most Sign Bits /$ least Sign Bits "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . GET , Ġentity , ĠString :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ"\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"{\" key \":\" 4 0 7 4 4 b 4 b - c 6 e 7 - 4 4 4 d - 8 0 f 2 - 7 a 0 8 bb af 1 3 1 2 \",\" text \":\" This Ġkey Ġwas Ġgenerated Ġfrom Ġ- 9 1 5 5 1 2 0 9 1 4 5 6 3 6 5 6 9 4 2 Ġto Ġ 4 6 4 4 4 1 9 9 0 4 5 5 7 4 9 9 4 6 9 \" }" ĊĊĠĠĠĠĠĠĠ ĠJSON Assert . assertEquals ( expected , Ġresponse . body , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ fail _ with _ wrong _ input () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= ĠHttp Entity < String >( null , Ġheaders ) ĊĠĠĠĠĠĠĠ Ġval Ġmost Sign Bits Ġ= Ġ" 4 6 4 4 4 1 9 9 0 4 5 5 7 4 9 9 4 6 9 L " ĊĠĠĠĠĠĠĠ Ġval Ġleast Sign Bits Ġ= Ġ"- 9 1 5 5 1 2 0 9 1 4 5 6 3 6 5 6 9 4 2 L " ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrest Template . exchange ( create URL With Port ("/ uuid /$ most Sign Bits /$ least Sign Bits "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . GET , Ġentity , ĠString :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠHttpStatus . BAD _ REQUEST ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresponse . statusCode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould _ fail _ with _ wrong _ text _ input () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= ĠHttp Entity < String >( null , Ġheaders ) ĊĠĠĠĠĠĠĠ Ġval Ġmost Sign Bits Ġ= Ġ" a " ĊĠĠĠĠĠĠĠ Ġval Ġleast Sign Bits Ġ= Ġ" select " ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrest Template . exchange ( create URL With Port ("/ uuid /$ most Sign Bits /$ least Sign Bits "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . GET , Ġentity , ĠString :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠHttpStatus . BAD _ REQUEST ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresponse . statusCode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate URL With Port ( uri : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" http :// localhost :$ port $ uri " ĊĠĠĠ Ġ} Ċ } ĊĊ