package com.spotify.heroic.cluster;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import com.google.common.collect.ImmutableSet;
import com.spotify.heroic.HeroicConfiguration;
import com.spotify.heroic.HeroicContext;
import com.spotify.heroic.scheduler.Scheduler;
import com.spotify.heroic.statistics.QueryReporter;
import eu.toolchain.async.AsyncFramework;
import eu.toolchain.async.AsyncFuture;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class CoreClusterManagerTest {
@Mock
AsyncFuture<Void> voidFuture;
@Mock
AsyncFramework async;
@Mock
ClusterDiscovery discovery;
@Mock
NodeMetadata localMetadata;
@Mock
Map<String, RpcProtocol> protocols;
@Mock
Scheduler scheduler;
@Mock
HeroicConfiguration options;
@Mock
LocalClusterNode local;
@Mock
HeroicContext context;
@Mock
private QueryReporter reporter;
private CoreClusterManager manager;
@Before
public void setUp() {
final boolean useLocal = true;
manager = spy(new CoreClusterManager(async, discovery, localMetadata, protocols, scheduler,
useLocal, options, local, context, ImmutableSet.of(), reporter));
}
@Test
public void basicRefresh() throws Exception {
doReturn(voidFuture).when(manager).refreshDiscovery(any(String.class));
assertEquals(voidFuture, manager.refresh());
verify(manager).refreshDiscovery(any(String.class));
verify(reporter, times(0)).reportClusterNodeRpcError();
verify(reporter, times(0)).reportClusterNodeRpcCancellation();
}
}