package Ġbr . com . er udio . integration tests . controller . with yaml Ċ Ċ import Ġbr . com . er udio . integration tests . Test Configs Ċ import Ġbr . com . er udio . integration tests . controller . with yaml . mapper . Y ML Mapper Ċ import Ġbr . com . er udio . integration tests . test containers . Abstract IntegrationTest Ċ import Ġbr . com . er udio . integration tests . vo . Account Credentials VO Ċ import Ġbr . com . er udio . integration tests . vo . Person VO Ċ import Ġbr . com . er udio . integration tests . vo . Token VO Ċ import Ġcom . fasterxml . jackson . core . Json Processing Exception Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . databind . Json Mapping Exception Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġio . rest ass ured . Rest Ass ured . given Ċ import Ġio . rest ass ured . builder . Request Spec Builder Ċ import Ġio . rest ass ured . config . Encoder Config Ċ import Ġio . rest ass ured . config . Rest Ass ured Config Ċ import Ġio . rest ass ured . filter . log . Log Detail Ċ import Ġio . rest ass ured . filter . log . Request Logging Filter Ċ import Ġio . rest ass ured . filter . log . Response Logging Filter Ċ import Ġio . rest ass ured . http . ContentType Ċ import Ġio . rest ass ured . specification . Request Specification Ċ import Ġorg . junit . jupiter . api .* Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Method Order er . Order Annotation Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ Ċ @ SpringBootTest ( web Environment Ġ= ĠSpring Boot Test . Web Environment . DEFINED _ PORT ) Ċ @ TestMethod Order ( Order Annotation :: class ) Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ class ĠPerson Controller Yaml Test Ġ: ĠAbstract IntegrationTest () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġspecification : ĠRequest Specification ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠobjectMapper : ĠY ML Mapper ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġperson : ĠPerson VO ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠobjectMapper Ġ= ĠY ML Mapper () ĊĠĠĠĠĠĠĠ Ġperson Ġ= ĠPerson VO () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 1 ) ĊĠĠĠ Ġfun Ġauthorization () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠAccount Credentials VO () ĊĊĠĠĠĠĠĠĠ Ġuser . username Ġ= Ġ" le andro " ĊĠĠĠĠĠĠĠ Ġuser . password Ġ= Ġ" admin 1 2 3 " ĊĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. basePath ("/ auth / signin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. port ( Test Configs . SERVER _ PORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( user , ĠobjectMapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` as `( Token VO :: class . java , ĠobjectMapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accessToken ĊĊĠĠĠĠĠĠĠ Ġspecification Ġ= ĠRequest Spec Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( Test Configs . HEADER _ PARAM _ AUTHORIZATION , Ġ" Bearer Ġ$ token ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set BasePath ("/ api / person / v 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Port ( Test Configs . SERVER _ PORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Filter ( Request Logging Filter ( Log Detail . ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Filter ( Response Logging Filter ( Log Detail . ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 2 ) ĊĠĠĠ Ġ@ Throws ( Json Mapping Exception :: class , ĠJson Processing Exception :: class ) ĊĠĠĠ Ġfun Ġtest Create () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Person () ĊĠĠĠĠĠĠĠ Ġval Ġcreated Person Ġ= Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. spec ( specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( person , ĠobjectMapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` as `( Person VO :: class . java , ĠobjectMapper ) ĊĊĠĠĠĠĠĠĠ Ġperson Ġ= Ġcreated Person ĊĠĠĠĠĠĠĠ ĠassertNotNull ( created Person . id ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( created Person . firstName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( created Person . lastName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( created Person . address ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( created Person . gender ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( created Person . id Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Rich ard ", Ġcreated Person . firstName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" St all man ", Ġcreated Person . lastName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" New ĠYork ĠCity , ĠNew ĠYork , ĠUS ", Ġcreated Person . address ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Male ", Ġcreated Person . gender ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 3 ) ĊĠĠĠ Ġ@ Throws ( Json Mapping Exception :: class , ĠJson Processing Exception :: class ) ĊĠĠĠ Ġfun Ġtest Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġperson . lastName Ġ= Ġ" Mat thew ĠSt all man " ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Person Ġ= Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. spec ( specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( person , ĠobjectMapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` as `( Person VO :: class . java , ĠobjectMapper ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( updated Person . id ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( updated Person . firstName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( updated Person . lastName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( updated Person . address ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( updated Person . gender ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( updated Person . id , Ġperson !!. id ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Rich ard ", Ġupdated Person . firstName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Mat thew ĠSt all man ", Ġupdated Person . lastName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" New ĠYork ĠCity , ĠNew ĠYork , ĠUS ", Ġupdated Person . address ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Male ", Ġupdated Person . gender ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 4 ) ĊĠĠĠ Ġ@ Throws ( Json Mapping Exception :: class , ĠJson Processing Exception :: class ) ĊĠĠĠ Ġfun Ġtest Find ById () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfound Person Ġ= Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. spec ( specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. path Param (" id ", Ġperson !!. id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ("{ id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` as `( Person VO :: class . java , ĠobjectMapper ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person . id ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person . firstName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person . lastName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person . address ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person . gender ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( found Person . id , Ġperson !!. id ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Rich ard ", Ġfound Person . firstName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Mat thew ĠSt all man ", Ġfound Person . lastName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" New ĠYork ĠCity , ĠNew ĠYork , ĠUS ", Ġfound Person . address ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Male ", Ġfound Person . gender ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 5 ) ĊĠĠĠ Ġfun Ġtest Delete () Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. spec ( specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. path Param (" id ", Ġperson . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete ("{ id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 6 ) ĊĠĠĠ Ġfun Ġtest Find All () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠArray < Person VO > Ġ= Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. spec ( specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` as `( Array < Person VO >:: class . java , ĠobjectMapper ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpeople Ġ= ĠlistOf (* response ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfound Person One Ġ= Ġpeople [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person One . id ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person One . firstName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person One . lastName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person One . address ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person One . gender ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġfound Person One . id ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A yr ton ", Ġfound Person One . firstName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Sen na ", Ġfound Person One . lastName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" SÃ£o ĠP au lo ", Ġfound Person One . address ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Male ", Ġfound Person One . gender ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfound Person Six Ġ= Ġpeople [ 6 ] ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person Six . id ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person Six . firstName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person Six . lastName ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person Six . address ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( found Person Six . gender ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġfound Person Six . id ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" N ik ola ", Ġfound Person Six . firstName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Tes la ", Ġfound Person Six . lastName ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Sm il jan Ġ- ĠC ro at ia ", Ġfound Person Six . address ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Male ", Ġfound Person Six . gender ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 7 ) ĊĠĠĠ Ġfun Ġtest Find All Without Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspecification Without Token : ĠRequest Specification Ġ= ĠRequest Spec Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set BasePath ("/ api / person / v 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Port ( Test Configs . SERVER _ PORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Filter ( Request Logging Filter ( Log Detail . ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Filter ( Response Logging Filter ( Log Detail . ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġgiven () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Ass ured Config ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoder Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncoder Config . encoder Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ContentType As ( Test Configs . CONTENT _ TYPE _ Y ML , ĠContentType . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. spec ( specification Without Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( Test Configs . CONTENT _ TYPE _ Y ML ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 4 0 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock Person () Ġ{ ĊĠĠĠĠĠĠĠ Ġperson !!. firstName Ġ= Ġ" Rich ard " ĊĠĠĠĠĠĠĠ Ġperson !!. lastName Ġ= Ġ" St all man " ĊĠĠĠĠĠĠĠ Ġperson !!. address Ġ= Ġ" New ĠYork ĠCity , ĠNew ĠYork , ĠUS " ĊĠĠĠĠĠĠĠ Ġperson !!. gender Ġ= Ġ" Male " ĊĠĠĠ Ġ} Ċ }