package Ġcom . y app . gil job . domain . sign . api Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . y app . gil job . domain . sign . repository . Sign Repository Ċ import Ġcom . y app . gil job . global . Abstract Rest Docs Ċ import Ġcom . y app . gil job . global . common . domain . Entity Factory Ċ import Ġcom . y app . gil job . global . common . dto . Dto Factory Ċ import Ġcom . y app . gil job . infra . k ak ao . application . K ak ao Service Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . BDD Mockito . any String Ċ import Ġorg . mockito . BDD Mockito . given Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . boot . test . mock . mockito . Mock Bean Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . rest docs . mock mvc . MockMvc Rest Documentation Ċ import Ġorg . springframework . rest docs . payload . Payload Documentation Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Handlers Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ Ċ @ SpringBootTest Ċ @ Transactional Ċ internal Ġclass ĠSign Controller Test Ġ: ĠAbstract Rest Docs () Ġ{ ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsign Repository : ĠSign Repository ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġk ak ao Service : ĠK ak ao Service ĊĊĠĠĠ Ġprivate Ġval Ġuser Ġ= ĠEntity Factory . test User () ĊĠĠĠ Ġprivate Ġval Ġsign Up Request Ġ= ĠD to Factory . test SignUp Request () ĊĠĠĠ Ġprivate Ġval Ġsign In Request Ġ= ĠD to Factory . test SignIn Request () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsign Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven ( k ak ao Service . get K ak ao Id From Token ( any String ())). willReturn ( user . social Id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= ĠObjectMapper (). writeValue AsString ( sign Up Request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmock Mvc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ("/ api / sign - up ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( json String )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do ( MockMvc Result Handlers . print ()) ĊĊĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Rest Documentation . document ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sign - up / post ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . response Fields ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" status ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" 2 0 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" message ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìĦ± ê³µ Ġë©Ķ ìĦ¸ ì§Ģ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìĿ ĳ ëĭ µ Ġëį°ìĿ´íĦ° ( í Ģ ĺ ìĬ¤íĬ¸ Ġë¦¬ ìĬ¤íĬ¸ )"), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" data . accessToken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìķ ł íĶĮ ë¦¬ ì¼ ĢìĿ´ ìħĺ Ġaccess Ġtoken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . request Fields ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" k ak ao AccessToken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ì¹´ ì¹´ ìĺ¤ Ġaccess Ġtoken "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" position ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ì¹´ íħ Į ê³ł ë¦¬ ( ì§ģ êµ ° )"), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" intro ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìŀĲ ê¸° ĠìĨĮ ê°ľ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" nickname ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ëĭ ī ëĦ ¤ ìŀĦ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsign In () Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven ( sign Repository . findBy Social Id ( any String ())). willReturn ( user ) ĊĠĠĠĠĠĠĠ Ġgiven ( k ak ao Service . get K ak ao Id From Token ( any String ())). willReturn ( user . social Id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson String Ġ= ĠObjectMapper (). writeValue AsString ( signIn Request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmock Mvc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ("/ api / sign - in ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( json String )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do ( MockMvc Result Handlers . print ()) ĊĊĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Rest Documentation . document ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sign - in / post ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . response Fields ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" status ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" 2 0 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" message ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìĦ± ê³µ Ġë©Ķ ìĦ¸ ì§Ģ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìĿ ĳ ëĭ µ Ġëį°ìĿ´íĦ° ( í Ģ ĺ ìĬ¤íĬ¸ Ġë¦¬ ìĬ¤íĬ¸ )"), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" data . is Signed Up ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" íļĮ ìĽĲ Ġê°Ģ ìŀħ íķľ Ġí ļĮ ìĽĲ ìĿ¸ ì§Ģ ĠìĹ¬ ë¶Ģ , Ġfalse ìĿ´ ë©´ Ġí ļĮ ìĽĲ Ġê°Ģ ìŀħ Ġì§Ħ íĸī "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" data . accessToken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ìķ ł íĶĮ ë¦¬ ì¼ ĢìĿ´ ìħĺ Ġaccess Ġtoken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . request Fields ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayload Documentation . field With Path (" k ak ao AccessToken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. description (" ì¹´ ì¹´ ìĺ¤ Ġaccess Ġtoken ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ }