Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,14 @@ public static StatusInfo ofOffline() {
return ofOffline(null);
}

public static StatusInfo ofOutOfService() {
return ofOutOfService(null);
}

public static StatusInfo ofRestricted() {
return ofRestricted(null);
}

public static StatusInfo ofUp(@Nullable Map<String, Object> details) {
return valueOf(STATUS_UP, details);
}
Expand All @@ -97,6 +105,14 @@ public static StatusInfo ofOffline(@Nullable Map<String, Object> details) {
return valueOf(STATUS_OFFLINE, details);
}

public static StatusInfo ofOutOfService(@Nullable Map<String, Object> details) {
return valueOf(STATUS_OUT_OF_SERVICE, details);
}

public static StatusInfo ofRestricted(@Nullable Map<String, Object> details) {
return valueOf(STATUS_RESTRICTED, details);
}

public Map<String, Object> getDetails() {
return Collections.unmodifiableMap(details);
}
Expand All @@ -117,6 +133,14 @@ public boolean isUnknown() {
return STATUS_UNKNOWN.equals(status);
}

public boolean isOutOfService() {
return STATUS_OUT_OF_SERVICE.equals(status);
}

public boolean isRestricted() {
return STATUS_RESTRICTED.equals(status);
}

public static Comparator<String> severity() {
return Comparator.comparingInt(STATUS_ORDER::indexOf);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,26 +47,50 @@ void test_isMethods() {
assertThat(StatusInfo.valueOf("FOO").isDown()).isFalse();
assertThat(StatusInfo.valueOf("FOO").isUnknown()).isFalse();
assertThat(StatusInfo.valueOf("FOO").isOffline()).isFalse();
assertThat(StatusInfo.valueOf("FOO").isOutOfService()).isFalse();
assertThat(StatusInfo.valueOf("FOO").isRestricted()).isFalse();

assertThat(StatusInfo.ofUp().isUp()).isTrue();
assertThat(StatusInfo.ofUp().isDown()).isFalse();
assertThat(StatusInfo.ofUp().isUnknown()).isFalse();
assertThat(StatusInfo.ofUp().isOffline()).isFalse();
assertThat(StatusInfo.ofUp().isOutOfService()).isFalse();
assertThat(StatusInfo.ofUp().isRestricted()).isFalse();

assertThat(StatusInfo.ofDown().isUp()).isFalse();
assertThat(StatusInfo.ofDown().isDown()).isTrue();
assertThat(StatusInfo.ofDown().isUnknown()).isFalse();
assertThat(StatusInfo.ofDown().isOffline()).isFalse();
assertThat(StatusInfo.ofDown().isOutOfService()).isFalse();
assertThat(StatusInfo.ofDown().isRestricted()).isFalse();

assertThat(StatusInfo.ofUnknown().isUp()).isFalse();
assertThat(StatusInfo.ofUnknown().isDown()).isFalse();
assertThat(StatusInfo.ofUnknown().isUnknown()).isTrue();
assertThat(StatusInfo.ofUnknown().isOffline()).isFalse();
assertThat(StatusInfo.ofUnknown().isOutOfService()).isFalse();
assertThat(StatusInfo.ofUnknown().isRestricted()).isFalse();

assertThat(StatusInfo.ofOffline().isUp()).isFalse();
assertThat(StatusInfo.ofOffline().isDown()).isFalse();
assertThat(StatusInfo.ofOffline().isUnknown()).isFalse();
assertThat(StatusInfo.ofOffline().isOffline()).isTrue();
assertThat(StatusInfo.ofOffline().isOutOfService()).isFalse();
assertThat(StatusInfo.ofOffline().isRestricted()).isFalse();

assertThat(StatusInfo.ofOutOfService().isUp()).isFalse();
assertThat(StatusInfo.ofOutOfService().isDown()).isFalse();
assertThat(StatusInfo.ofOutOfService().isUnknown()).isFalse();
assertThat(StatusInfo.ofOutOfService().isOffline()).isFalse();
assertThat(StatusInfo.ofOutOfService().isOutOfService()).isTrue();
assertThat(StatusInfo.ofOutOfService().isRestricted()).isFalse();

assertThat(StatusInfo.ofRestricted().isUp()).isFalse();
assertThat(StatusInfo.ofRestricted().isDown()).isFalse();
assertThat(StatusInfo.ofRestricted().isUnknown()).isFalse();
assertThat(StatusInfo.ofRestricted().isOffline()).isFalse();
assertThat(StatusInfo.ofRestricted().isOutOfService()).isFalse();
assertThat(StatusInfo.ofRestricted().isRestricted()).isTrue();
}

@Test
Expand All @@ -78,6 +102,21 @@ void from_map_should_return_same_result() {
assertThat(StatusInfo.from(map)).isEqualTo(StatusInfo.ofUp(singletonMap("foo", "bar")));
}

@Test
void factory_methods_with_details() {
Map<String, Object> details = singletonMap("reason", "maintenance");

StatusInfo outOfService = StatusInfo.ofOutOfService(details);
assertThat(outOfService.getStatus()).isEqualTo(STATUS_OUT_OF_SERVICE);
assertThat(outOfService.getDetails()).containsEntry("reason", "maintenance");
assertThat(outOfService.isOutOfService()).isTrue();

StatusInfo restricted = StatusInfo.ofRestricted(details);
assertThat(restricted.getStatus()).isEqualTo(STATUS_RESTRICTED);
assertThat(restricted.getDetails()).containsEntry("reason", "maintenance");
assertThat(restricted.isRestricted()).isTrue();
}

@Test
void when_first_level_key_is_components() {
Map<String, Object> map = new HashMap<>();
Expand Down