package org.apereo.cas.monitor; import org.apereo.cas.ticket.registry.DefaultTicketRegistry; import org.junit.Test; import java.util.Collections; import java.util.HashSet; import java.util.Set; import static java.util.Arrays.asList; import static org.junit.Assert.*; /** * Unit test for {@link HealthCheckMonitor} class. * * @author Marvin S. Addison * @since 3.5.0 */ public class HealthCheckMonitorTests { @Test public void verifyObserveUnknown() throws Exception { final HealthCheckMonitor monitor = new HealthCheckMonitor(Collections.emptySet()); assertEquals(StatusCode.UNKNOWN, monitor.observe().getCode()); } @Test public void verifyObserveOk() throws Exception { final Set<Monitor> monitors = new HashSet<>(asList(new MemoryMonitor(0), newSessionMonitor())); final HealthCheckMonitor monitor = new HealthCheckMonitor(monitors); assertEquals(StatusCode.OK, monitor.observe().getCode()); } @Test public void verifyObserveWarn() throws Exception { final Set<Monitor> monitors = new HashSet<>(asList(new MemoryMonitor(100), newSessionMonitor())); final HealthCheckMonitor monitor = new HealthCheckMonitor(monitors); assertEquals(StatusCode.WARN, monitor.observe().getCode()); } @Test public void verifyThrowsUncheckedException() throws Exception { final Monitor throwsUnchecked = new Monitor() { @Override public String getName() { return "ThrowsUnchecked"; } @Override public Status observe() { throw new IllegalStateException("Boogity!"); } }; final HealthCheckMonitor monitor = new HealthCheckMonitor(Collections.singleton(throwsUnchecked)); assertEquals(StatusCode.ERROR, monitor.observe().getCode()); } private static SessionMonitor newSessionMonitor() { return new SessionMonitor(new DefaultTicketRegistry(), 0, 0); } }