package Ġcom . git sh ah . blog Ċ Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . boot . test . web . client . Test Rest Template Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest ( web Environment Ġ= ĠSpring Boot Test . Web Environment . RANDOM _ PORT ) Ċ class ĠBook Controller Test Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġtest Rest Template : ĠTest Rest Template ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Search Books () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtest Rest Template . get For Entity ("/ books / search ? title = Ste ve ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class . java ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( result ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( HttpStatus . OK , Ġresult . statusCode ) ĊĠĠĠĠĠĠĠ Ġprintln ( result . body ) ĊĠĠĠĠĠĠĠ Ġval Ġbooks Ġ= Ġresult . body . fromJson < Array < Book >>() ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġbooks . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( books . find Ġ{ Ġit . title Ġ== Ġ" Ste ve ĠJobs " Ġ}) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( books . find Ġ{ Ġit . title Ġ== Ġ" Ste ve ĠJobs : ĠThe Ġman Ġwho Ġthought Ġdifferent " Ġ}) ĊĠĠĠ Ġ} Ċ }