package io.pcp.parfait;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.Collections;
import java.util.List;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class DynamicMonitoringViewTest {
@Mock
MonitorableRegistry monitorableRegistry;
List<Monitorable<?>> monitorables = Collections.<Monitorable<?>>singletonList(new DummyMonitorable("foo"));
@Mock
MonitoringView monitoringView;
private DynamicMonitoringView dynamicMonitoringView;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
dynamicMonitoringView = new DynamicMonitoringView(monitorableRegistry, monitoringView, 2000);
when(monitorableRegistry.getMonitorables()).thenReturn(monitorables);
}
@Test
public void startAndStopShouldStartAndStopMonitoringOnWrappedView() throws Exception {
dynamicMonitoringView.start();
verify(monitoringView).startMonitoring(monitorables);
dynamicMonitoringView.stop();
verify(monitoringView).stopMonitoring(monitorables);
}
@Test
public void isRunningShouldDelegateToWrappedView() throws Exception {
when(monitoringView.isRunning()).thenReturn(false);
assertFalse(dynamicMonitoringView.isRunning());
dynamicMonitoringView.start();
when(monitoringView.isRunning()).thenReturn(true);
assertTrue(dynamicMonitoringView.isRunning());
}
}