1 package it.com.atlassian.plugin.refimpl;
2
3 import com.atlassian.healthcheck.checks.HealthCheckConstants;
4 import com.atlassian.healthcheck.checks.plugin.PluginHealthCheckConstants;
5 import org.codehaus.jackson.JsonNode;
6 import org.junit.Test;
7
8 import java.util.List;
9
10 import static com.atlassian.healthcheck.checks.HealthCheckConstants.HEALTH_CHECK_IS_HEALTHY_FIELD;
11 import static com.atlassian.healthcheck.checks.HealthCheckConstants.HEALTH_CHECK_NAME_FIELD;
12 import static com.google.common.collect.Lists.newArrayList;
13 import static org.hamcrest.MatcherAssert.assertThat;
14 import static org.hamcrest.Matchers.containsInAnyOrder;
15 import static org.hamcrest.Matchers.empty;
16
17
18
19
20
21
22
23
24 public class TestHealthChecks {
25
26 @Test
27 public void testExpectedHealthchecksPresent() {
28 JsonNode statusArray = HealthCheckTestUtils.getHealthChecksStatusArray();
29
30 List<String> checkNames = newArrayList();
31 for (JsonNode status : statusArray) {
32 checkNames.add(status.get(HEALTH_CHECK_NAME_FIELD).asText());
33 }
34
35 assertThat("Some of the expected healthchecks were not present."
36 + " Check that plugins containing them have initialised ok,"
37 + " or whether their <health-check>'s name field has been changed",
38 checkNames,
39 containsInAnyOrder(
40 HealthCheckConstants.HOST_APPLICATION_STATUS_HEALTH_CHECK,
41 PluginHealthCheckConstants.DISABLED_PLUGINS_HEALTHCHECK,
42 PluginHealthCheckConstants.DISABLED_PLUGIN_MODULES_HEALTHCHECK,
43 PluginHealthCheckConstants.DISABLED_BY_DEFAULT_PLUGINS_HEALTHCHECK,
44 PluginHealthCheckConstants.DISABLED_BY_DEFAULT_PLUGIN_MODULES_HEALTHCHECK));
45 }
46
47 @Test
48 public void testAllHealthChecksPass() throws Exception {
49 JsonNode statusArray = HealthCheckTestUtils.getHealthChecksStatusArray();
50
51 List<JsonNode> errors = newArrayList();
52 for (JsonNode status : statusArray) {
53 if (!status.get(HEALTH_CHECK_IS_HEALTHY_FIELD).asBoolean()) {
54 errors.add(status);
55 }
56 }
57
58 assertThat("All healthchecks should pass, but these ones failed: ", errors, empty());
59 }
60
61 }