package Ġio . github . gab riel sh an ahan . g azer . api . integration . controller Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġio . github . gab riel sh an ahan . g azer . api . model . as Model Ċ import Ġio . github . gab riel sh an ahan . g azer . data . Data Samples Ċ import Ġio . github . gab riel sh an ahan . g azer . data . repository . Mon itored Endpoint Repository Ċ import Ġio . github . gab riel sh an ahan . g azer . data . repository . UserRepository Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ 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 . h ate o as . Media Types . HAL _ FOR MS _ JSON Ċ 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 Ċ Ċ @ SpringBootTest Ċ @ Auto Configure MockMvc Ċ class ĠHTTP Post Test ( ĊĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġmock Mvc : ĠMock Mvc , ĊĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġuser Repo : ĠUser Repository , ĊĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġmon itored Endpoint Repo : ĠMon itored Endpoint Repository , ĊĠĠĠ Ġ@ Autowired Ġval Ġj ack son ObjectMapper : ĠObjectMapper Ċ ) Ġ{ ĊĠĠĠ Ġval Ġshared Data Ġ= ĠData Samples ( user Repo ) ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġmon itored Endpoint Repo . save All ( shared Data . appl ifting . endpoints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun Ġteardown () Ġ{ ĊĠĠĠĠĠĠĠ Ġmon itored Endpoint Repo . delete All ( shared Data . appl ifting . endpoints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Saving Ġa Ġmon itored Ġendpoint Ġworks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġj ack son ObjectMapper . writeValue AsString ( shared Data . bat man . endpoints . first ()) ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ("/ mon itored Endpoints ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( json ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" G azer Token ", Ġshared Data . bat man . user . token ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Created ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( HAL _ FOR MS _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . json Path ("\ $. user . username "). value ( shared Data . bat man . user . username )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . json Path ("\ $. id "). isNotEmpty ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Saving Ġsomething Ġelse Ġdoesn 't Ġwork `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġj ack son ObjectMapper . writeValue AsString ( shared Data . bat man . user ) ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ("/ mon itored Endpoints ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( json ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" G azer Token ", Ġshared Data . bat man . user . token ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is BadRequest ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Saving Ġinvalid Ġmon itored Ġendpoint Ġdoesn 't Ġworks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġendpoint Ġ= Ġshared Data . bat man . endpoints . first (). as Model () ĊĠĠĠĠĠĠĠ Ġendpoint . name Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġj ack son ObjectMapper . writeValue AsString ( endpoint ) ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ("/ mon itored Endpoints ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( json ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" G azer Token ", Ġshared Data . bat man . user . token ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is BadRequest ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Result Matchers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. json Path ("\ $. vi olations [ 0 ]. fieldName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. value (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ