package Ġnet . jp . v ss . sample . controller . users Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġnet . jp . v ss . sample . domain . exceptions . NotFoundException Ċ import Ġnet . jp . v ss . sample . domain . users . User Fixtures Ċ import Ġnet . jp . v ss . sample . use case . users . Update User UseCase Ċ import Ġnet . jp . v ss . sample . use case . users . User UseCase Result Ċ import Ġorg . hamcrest . Core Matchers .` is ` Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . autoconfigure . web . servlet . Auto Configure MockMvc Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . boot . test . mock . mockito . Mock Bean Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . security . test . context . support . With Mock User Ċ import Ġorg . springframework . security . test . web . servlet . request . Security MockMvc Request Post Processors Ċ import Ġorg . springframework . test . context . junit . jupiter . Spring Extension Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders . post Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . json Path Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . status Ċ Ċ /** Ċ Ġ* ĠUpdate User Api Controller Ġãģ® ãĥĨãĤ¹ãĥĪ . Ċ Ġ*/ Ċ @ Extend With ( Spring Extension :: class ) Ċ @ SpringBootTest Ċ @ Auto Configure MockMvc Ċ class ĠUpdate User Api Controller Test Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Mvc : ĠMock Mvc ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġupdate User UseCase : ĠUpdate User UseCase ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ĊĠĠĠ Ġfun Ġtest Update User () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġupdated User Ġ= ĠUser Fixtures . create () ĊĠĠĠĠĠĠĠ Ġwhenever ( update User UseCase . update User ( any ())). thenReturn ( User UseCase Result . of ( updated User )) ĊĊĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= ĠUpdate User Api Parameter Fixtures . create () ĊĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġmapper . writeValue AsString ( parameter ) ĊĠĠĠĠĠĠĠ Ġval Ġuser Code Ġ= Ġ" USER _ 0 0 0 0 1 " ĊĊĠĠĠĠĠĠĠ Ġ// Ġexecution ĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( post ("/ api / users /{ user Code }", Ġuser Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . csrf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( content )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" user _ code "). value (` is `( updated User . user Code . value ))) ĊĊĠĠĠĠĠĠĠ Ġverify ( update User UseCase ). update User ( parameter . to Parameter ( user Code )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ĊĠĠĠ Ġfun Ġtest Update User _ NotFound User _ 4 0 4 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠNotFound Exception (" dummy ") ĊĠĠĠĠĠĠĠ Ġwhenever ( update User UseCase . update User ( any ())). then Throw ( exception ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= ĠUpdate User Api Parameter Fixtures . create () ĊĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġmapper . writeValue AsString ( parameter ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexecution ĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( post ("/ api / users / dummy _ 0 0 0 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . csrf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( content )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is NotFound ) ĊĠĠĠ Ġ} Ċ } Ċ