package keywhiz.service.resources; import com.codahale.metrics.health.HealthCheck; import com.codahale.metrics.health.HealthCheckRegistry; import io.dropwizard.setup.Environment; import java.time.Duration; import java.util.TreeMap; import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.core.Response; import keywhiz.KeywhizConfig; import org.junit.Before; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class StatusResourceTest { HealthCheckRegistry registry; Environment environment; StatusResource status; KeywhizConfig keywhizConfig; @Before public void setUp() throws Exception { this.registry = mock(HealthCheckRegistry.class); this.environment = mock(Environment.class); this.keywhizConfig = mock(KeywhizConfig.class); when(environment.healthChecks()).thenReturn(registry); when(keywhizConfig.getStatusCacheExpiry()).thenReturn(Duration.ofSeconds(1)); this.status = new StatusResource(keywhizConfig, environment); } @Test public void testStatusOk() throws Exception { when(registry.runHealthChecks()).thenReturn(new TreeMap<>()); Response r = status.get(); assertThat(r.getStatus()).isEqualTo(200); } @Test public void testStatusWarn() throws Exception { TreeMap<String, HealthCheck.Result> map = new TreeMap<>(); map.put("test", HealthCheck.Result.unhealthy("failing")); when(registry.runHealthChecks()).thenReturn(map); Response r = status.get(); assertThat(r.getStatus()).isEqualTo(500); } }