X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fdemo%2FDemoApplicationTests.java;h=0c07e930944806b490f4fca0de1151fd670c3608;hb=280599c77a6ae267a544236bdc1e8eb5172b14e7;hp=f2981dcaba4a43748fdc3b2a0f64e074b9d2e429;hpb=9639c89ecb4d10ffd9cfd6f4889247ae1881fc3a;p=demos%2Fspring-boot diff --git a/src/test/java/de/juplo/demo/DemoApplicationTests.java b/src/test/java/de/juplo/demo/DemoApplicationTests.java index f2981dc..0c07e93 100644 --- a/src/test/java/de/juplo/demo/DemoApplicationTests.java +++ b/src/test/java/de/juplo/demo/DemoApplicationTests.java @@ -7,12 +7,17 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; -import static de.juplo.demo.BackendVersionInterceptor.BACKEND_VERSION; +import static de.juplo.demo.RequestTypeInterceptor.REQUEST_TYPE; +import static de.juplo.demo.RequestTypeInterceptor.RequestType.HUMAN; +import static de.juplo.demo.RequestTypeInterceptor.RequestType.MACHINE; +import static org.springframework.http.HttpHeaders.ACCEPT; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -@SpringBootTest +@SpringBootTest(properties = { "application.name=FOO", "build.version=BAR" }) @AutoConfigureMockMvc class DemoApplicationTests { @@ -28,26 +33,95 @@ class DemoApplicationTests @Test - void getWelcomeResponseIsOkIfBackendHeaderIsNotSet(@Autowired MockMvc mvc) throws Exception + void getWelcomeResponseIsOkIfRequestTypeHeaderIsNotSet(@Autowired MockMvc mvc) throws Exception { - mvc.perform(get("/")).andExpect(status().isOk()); + mvc + .perform(get("/")) + .andExpect(status().isOk()); } @Test - void getWelcomeResponseIsOkIfBackendHeaderDoesMatch(@Autowired MockMvc mvc) throws Exception + void getWelcomeResponseIsOkIfRequestIsOfTypeMachine(@Autowired MockMvc mvc) throws Exception { mvc .perform(get("/") - .header(BACKEND_VERSION, projectVersion)) + .header(REQUEST_TYPE, MACHINE)) .andExpect(status().isOk()); } @Test - void getWelcomeResponseIsGoneIfBackendHeaderDoesNotMatch(@Autowired MockMvc mvc) throws Exception + void getWelcomeResponseIsOkIfRequestIsOfTypeHuman(@Autowired MockMvc mvc) throws Exception { mvc .perform(get("/") - .header(BACKEND_VERSION, "FOO")) - .andExpect(status().isGone()); + .header(REQUEST_TYPE, HUMAN)) + .andExpect(status().isOk()); + } + + @Test + void expectedResultsForGreetIfRequestIsOfTypeMachine(@Autowired MockMvc mvc) throws Exception + { + mvc + .perform(post("/greet/peter") + .header(ACCEPT, "application/json") + .header(REQUEST_TYPE, MACHINE) + .content("Hello TO_NAME, nice to meet you. I'm FROM_NAME.")) + .andExpect(status().isOk()) + .andExpect(content().json("{\"message\": \"Hello peter, nice to meet you. I'm FOO@BAR.\"}")); + } + + @Test + void expectedResultsForGreetIfRequestIsOfTypeHuman(@Autowired MockMvc mvc) throws Exception + { + mvc + .perform(post("/greet/peter") + .header(ACCEPT, "application/json") + .header(REQUEST_TYPE, HUMAN) + .content("Hello TO_NAME, nice to meet you. I'm FROM_NAME.")) + .andExpect(status().isOk()) + .andExpect(content().json("{\"message\": \"Hello peter, nice to meet you. I'm FOO@BAR.\"}")); + } + + @Test + void badRequestForGreetIfRequestTypeHeaderIsNotSet(@Autowired MockMvc mvc) throws Exception + { + mvc + .perform(post("/greet/peter") + .header(ACCEPT, "application/json") + .content("Hello TO_NAME, nice to meet you. I'm FROM_NAME.")) + .andExpect(status().isBadRequest()); + } + + @Test + void expectedResultsForAcknowlegeIfRequestIsOfTypeMachine(@Autowired MockMvc mvc) throws Exception + { + mvc + .perform(post("/acknowledge/peter") + .header(ACCEPT, "application/json") + .header(REQUEST_TYPE, MACHINE) + .content("Hello TO_NAME, nice to meet you. I'm FROM_NAME.")) + .andExpect(status().isOk()) + .andExpect(content().json("{\"message\": \"Hello peter, nice to meet you. I'm FOO@BAR.\"}")); + } + + @Test + void isForbiddenForAcknowlegeIfRequestIsOfTypeHuman(@Autowired MockMvc mvc) throws Exception + { + mvc + .perform(post("/acknowledge/peter") + .header(ACCEPT, "application/json") + .header(REQUEST_TYPE, HUMAN) + .content("Hello TO_NAME, nice to meet you. I'm FROM_NAME.")) + .andExpect(status().isForbidden()); + } + + @Test + void badRequestForAcknowlegeIfRequestTypeHeaderIsNotSet(@Autowired MockMvc mvc) throws Exception + { + mvc + .perform(post("/acknowledge/peter") + .header(ACCEPT, "application/json") + .content("Hello TO_NAME, nice to meet you. I'm FROM_NAME.")) + .andExpect(status().isBadRequest()); } }