Added Tests
This commit is contained in:
parent
ba5f54d666
commit
090404a08b
|
@ -21,6 +21,10 @@ public class CustomStatusCodeMapper implements HttpCodeStatusMapper {
|
|||
return 500;
|
||||
}
|
||||
|
||||
if (status.getCode().equals("WARNING")) {
|
||||
return 500;
|
||||
}
|
||||
|
||||
return 200;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.baeldung.health;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
|
||||
import org.springframework.boot.actuate.health.Health;
|
||||
import org.springframework.boot.actuate.health.HealthIndicator;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -9,6 +10,7 @@ import java.util.Map;
|
|||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
@Component
|
||||
@ConditionalOnEnabledHealthIndicator("random")
|
||||
public class RandomHealthIndicator implements HealthIndicator {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package com.baeldung.health;
|
||||
|
||||
import org.springframework.boot.actuate.health.Health;
|
||||
import org.springframework.boot.actuate.health.HealthIndicator;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class WarningHealthIndicator implements HealthIndicator {
|
||||
|
||||
@Override
|
||||
public Health health() {
|
||||
return Health.status("WARNING").build();
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
management.health.probes.enabled=true
|
||||
management.endpoint.health.show-details=always
|
||||
management.health.random.enabled=false
|
||||
management.endpoint.health.status.http-mapping.down=500
|
||||
management.endpoint.health.status.http-mapping.out_of_service=503
|
||||
management.endpoint.health.status.http-mapping.out_of_service=503
|
||||
management.endpoint.health.status.http-mapping.warning=500
|
|
@ -0,0 +1,26 @@
|
|||
package com.baeldung.health;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
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.status;
|
||||
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
@TestPropertySource(properties = "management.health.random.enabled=false")
|
||||
class DisabledRandomHealthIndicatorIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@Test
|
||||
void givenADisabledIndicator_whenSendingRequest_thenReturns404() throws Exception {
|
||||
mockMvc.perform(get("/actuator/health/random"))
|
||||
.andExpect(status().isNotFound());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.baeldung.health;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
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;
|
||||
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
class RandomHealthIndicatorIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@Test
|
||||
void givenRandomIndicator_whenCallingTheAPI_thenReturnsExpectedDetails() throws Exception {
|
||||
mockMvc.perform(get("/actuator/health/random"))
|
||||
.andExpect(jsonPath("$.status").exists())
|
||||
.andExpect(jsonPath("$.details.strategy").value("thread-local"))
|
||||
.andExpect(jsonPath("$.details.chance").exists());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.baeldung.health;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
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;
|
||||
|
||||
@SpringBootTest
|
||||
@AutoConfigureMockMvc
|
||||
class WarningHealthIndicatorIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@Test
|
||||
void givenCustomMapping_whenCallingTheAPI_thenTheStatusCodeIsAsExpected() throws Exception {
|
||||
mockMvc.perform(get("/actuator/health/warning"))
|
||||
.andExpect(jsonPath("$.status").value("WARNING"))
|
||||
.andExpect(status().isInternalServerError());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue