Skip to content

Commit 7885603

Browse files
committed
[NPE] Checking if HealthCheck exists before tryin to perform it
1 parent 34bdc15 commit 7885603

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/main/java/net/zileo/ohdear/healthchecks/service/HealthCheckRegistry.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ public CheckResultsHolder performAll() {
4949
}
5050

5151
public CheckResultsHolder perform(String healthCheckName) {
52+
if (!this.healthChecks.containsKey(healthCheckName)) {
53+
throw new IllegalArgumentException("No health check with name '" + healthCheckName + "' has been registered");
54+
}
5255
CheckResultsHolder results = new CheckResultsHolder();
5356
results.addCheckResult(perform(this.healthChecks.get(healthCheckName)));
5457
results.setFinishedDate(new Date());

src/test/java/net/zileo/ohdear/healthchecks/service/HealthCheckRegistryTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,18 @@ void testCustomHealthCheck() {
160160
assertCustomHealthCheckResult(results.getCheckResults().get(0));
161161
}
162162

163+
@Test
164+
void testMissingRegisteredHealthCheck() {
165+
final String name = "NotExistingHealthCheck";
166+
167+
IllegalArgumentException exception = Assertions.assertThrows(IllegalArgumentException.class, () -> {
168+
HealthCheckRegistry r = new HealthCheckRegistry();
169+
r.perform("NotExistingHealthCheck");
170+
});
171+
172+
Assertions.assertTrue(exception.getMessage().contains(name));
173+
}
174+
163175
private void assertCustomHealthCheckResult(CheckResult result) {
164176
assertResult(result, HealthCheckStatus.OK, CustomResultHealthCheck.NAME, CustomResultHealthCheck.LABEL, CustomResultHealthCheck.SUMMARY, CustomResultHealthCheck.MESSAGE, List.of("meta", "tag", "meta2", "tag2"));
165177
}

0 commit comments

Comments
 (0)