diff --git a/src/test/java/com/example/controller/HealthControllerTest.java b/src/test/java/com/example/controller/HealthControllerTest.java new file mode 100644 index 0000000..2c00fa8 --- /dev/null +++ b/src/test/java/com/example/controller/HealthControllerTest.java @@ -0,0 +1,35 @@ +package com.example.controller; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +/** + * Focused unit tests for HealthController. + * Uses @WebMvcTest for slice testing without full context. + */ +@WebMvcTest(HealthController.class) +class HealthControllerTest { + + @Autowired + private MockMvc mockMvc; + + @Test + void health_shouldReturnUpStatus() throws Exception { + mockMvc.perform(get("/api/health")) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.status").value("UP")); + } + + @Test + void ping_shouldReturnPong() throws Exception { + mockMvc.perform(get("/api/ping")) + .andExpect(status().isOk()) + .andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.content().string("pong")); + } +}