package Ġcom . d imed ical . controller Ċ Ċ import Ġcom . d imed ical . constant . API Constant Ċ import Ġcom . d imed ical . constant . State Enum Ċ import Ġcom . d imed ical . entity . Doctor Entity Ċ import Ġcom . d imed ical . service . impl . Doctor ServiceImpl Ċ import Ġcom . d imed ical . util . extension . Entity To DTO Extension . to DTO Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito .` when ` Ċ import Ġorg . mockito . Mockito . do Nothing Ċ 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 . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ import Ġjava . util . Date Ċ Ċ @ SpringBootTest Ċ @ Auto Configure MockMvc Ċ class ĠDoctor Controller Test Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġm vc : ĠMock Mvc ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġval Ġservice : ĠDoctor ServiceImpl ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Doctor Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget Json (" request - doctor . json ") ĊĊĠĠĠĠĠĠĠ Ġ` when `( service ?. add Doctor ( any Object ())). thenReturn ( get Doctor (). to DTO ()) ĊĊĠĠĠĠĠĠĠ Ġm vc !!. perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( API Constant . BASE _ API Ġ+ ĠAPI Constant . POST _ DO CTOR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Created ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfind Doctor Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġ` when `( service ?. find Doctor ( 1 L )). thenReturn ( get Doctor (). to DTO ()) ĊĊĠĠĠĠĠĠĠ Ġm vc !!. perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( API Constant . BASE _ API Ġ+ ĠAPI Constant . GET _ DO CTOR , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġupdate User Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget Json (" request - doctor . json ") ĊĊĠĠĠĠĠĠĠ Ġ` when `( service ?. update Doctor ( 1 L , Ġget Doctor ())). thenReturn ( get Doctor (). to DTO ()) ĊĊĠĠĠĠĠĠĠ Ġm vc !!. perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. patch ( API Constant . BASE _ API Ġ+ ĠAPI Constant . PATCH _ DO CTOR , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete User Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Nothing (). ` when `( service ) !!. delete Doctor ( 1 L ) ĊĊĠĠĠĠĠĠĠ Ġm vc !!. perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete ( API Constant . BASE _ API Ġ+ ĠAPI Constant . DELETE _ DO CTOR , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is No Content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Doctor () Ġ= ĠDoctor Entity ( ĊĠĠĠĠĠĠĠĠ 1 L , ĊĠĠĠĠĠĠĠ Ġ" Les lie ĠPo ssid onio ", ĊĠĠĠĠĠĠĠĠ 1 2 3 4 5 6 7 8 , ĊĠĠĠĠĠĠĠ ĠState Enum . SP , ĊĠĠĠĠĠĠĠ Ġ" CRM ", ĊĠĠĠĠĠĠĠ ĠDate () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġget Json ( fileName : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclass Loader Ġ= Ġjava Class . class Loader ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( class Loader . getResource ( fileName ). file ) ĊĠĠĠĠĠĠĠ Ġreturn ĠString ( Files . read All Bytes ( file . to Path ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġany Object (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMockito . any () ĊĠĠĠ Ġ} Ċ } Ċ