package Ġsystem kern . profile Ċ Ċ import Ġorg . json . JSONObject Ċ import Ġorg . junit . Before Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . autoconfigure . Enable Auto Configuration Ċ import Ġorg . springframework . http . HttpHeaders Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . rest docs . mock mvc . MockMvc Rest Documentation Ċ import Ġorg . springframework . rest docs . mock mvc . Rest Documentation Request Builders Ċ import Ġorg . springframework . rest docs . payload . Json FieldType Ċ import Ġorg . springframework . rest docs . payload . Payload Documentation Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers Ċ import Ġjava . util .* Ċ /* Ċ Ċ @ Enable Auto Configuration Ċ internal Ġclass ĠAuthentication IT Ġ: ĠIntegration Test () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġname Example Ġ= Ġ" And res A use cha " ĊĠĠĠ Ġprivate Ġval Ġname Example 1 Ġ= Ġ" R ainer K ern " ĊĠĠĠ Ġprivate Ġval Ġusername Example Ġ= Ġname Example Ġ+ Ġ" 1 8 " ĊĠĠĠ Ġprivate Ġval Ġhttp Headers Ġ= ĠHttp Headers () ĊĠĠĠ Ġprivate Ġval Ġrest Url Ġ= Ġ"/ user - profiles " ĊĠĠĠ Ġprivate Ġval Ġrest Login Ġ= Ġ"/ login " ĊĠĠĠ Ġprivate Ġvar Ġtoken : ĠString Ġ= Ġ"" ĊĠĠĠ Ġval Ġheaders : ĠHashMap < String , ĠString > Ġ= ĠHashMap () ĊĠĠĠ Ġprivate Ġvar Ġusername Desc Ġ= Ġ" Username Ġto Ġlog Ġin " ĊĠĠĠ Ġprivate Ġvar Ġusername Ġ= Ġ" username " ĊĊĠĠĠ Ġprivate Ġval Ġentity Response Fields Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" id "). description (" The ĠId Ġof Ġthe Ġuser Ġentity "). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" name "). description (" Name Ġof Ġthe Ġuser "). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path ( username ). description ( username Desc ). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path ("_ links . self . href "). description (" Link Ġto Ġaccess Ġthe Ġcreated Ġuser "). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path ("_ links . user Profile . href "). description (" Link Ġto Ġaccess Ġthe Ġcreated Ġuser "). type ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson FieldType . STRING ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġlogin Response Fields Ġ= ĠPayload Documentation . response Fields ( listOf ( ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" token "). description (" Token Ġto Ġauthenticate Ġthe Ġnext Ġrequests "). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path ( username ). description ( username Desc ). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" userId "). description (" Password Ġof Ġuser Ġto Ġbe Ġcreated "). type ( Json FieldType . STRING ), ĊĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" valid Until "). description (" Date Ġand ĠTime Ġuntil Ġsession Ġwill Ġexpire "). type ( Json FieldType . STRING ))) ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠtestData Creator : ĠUser Profile TestData Creator ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠuserId : ĠUUID ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠtestData Creator . persist TestData () ĊĠĠĠĠĠĠĠ Ġthis . userId Ġ= ĠtestData Creator . userId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` create Ġuser Ġfunction `( user : ĠTest Auth User ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mock Mvc . perform ( Rest Documentation Request Builders . post ( rest Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( user )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Created ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do ( MockMvc Rest Documentation . document (" user _ create ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . response Fields ( entity Response Fields ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` login Ġfunction `( username : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġheaders [ this . username ] Ġ= Ġusername ĊĠĠĠĠĠĠĠ Ġheaders [" password "] Ġ= Ġpassword ĊĠĠĠĠĠĠĠ Ġhttp Headers . set All ( headers ) ĊĠĠĠĠĠĠĠ Ġthis . mock Mvc . perform ( Rest Documentation Request Builders . post ( rest Login ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. headers ( http Headers ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do ( MockMvc Rest Documentation . document (" user _ login ", Ġlogin Response Fields )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn (). response . content AsString . let Ġ{ Ġtoken Ġ= Ġ" Bearer Ġ" Ġ+ ĠJSONObject ( it ). get (" token "). toString () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġdata Ġclass ĠTest Auth User ( ĊĠĠĠ Ġval Ġusername : ĠString , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġpassword : ĠString Ċ ) Ċ */