package org.jboss.tools.openshift.test.internal.core;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.isNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.jboss.tools.openshift.core.connection.IOpenShiftConnection;
import org.jboss.tools.openshift.internal.core.WatchManager;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import com.openshift.restclient.IClient;
import com.openshift.restclient.IWatcher;
import com.openshift.restclient.capability.CapabilityVisitor;
import com.openshift.restclient.model.IProject;
@RunWith(MockitoJUnitRunner.class)
public class WatchManagerTest {
@Mock IProject project;
@Mock IOpenShiftConnection connection;
@Mock IClient client;
@Test
@SuppressWarnings("unchecked")
public void testStartStopWatch() {
// given
when(project.accept(any(CapabilityVisitor.class), isNull())).thenReturn(client);
IWatcher watchClient = mock(IWatcher.class);
when(client.watch(any(), any(), any())).thenReturn(watchClient);
// when - then
WatchManager.getInstance().startWatch(project, connection);
verify(client, timeout(200).times(WatchManager.KINDS.length)).watch(any(), any(), any());
WatchManager.getInstance().stopWatch(project, connection);
verify(watchClient, timeout(200).times(WatchManager.KINDS.length)).stop();
}
}