use of org.neo4j.test.OnDemandJobScheduler in project neo4j by neo4j.
the class MembershipWaiterTest method shouldTimeoutIfMemberButNotCaughtUp.
@Test
public void shouldTimeoutIfMemberButNotCaughtUp() throws Exception {
OnDemandJobScheduler jobScheduler = new OnDemandJobScheduler();
MembershipWaiter waiter = new MembershipWaiter(member(0), jobScheduler, () -> dbHealth, 1, NullLogProvider.getInstance());
ExposedRaftState raftState = RaftStateBuilder.raftState().votingMembers(member(0), member(1)).leaderCommit(0).build().copy();
RaftMachine raft = mock(RaftMachine.class);
when(raft.state()).thenReturn(raftState);
CompletableFuture<Boolean> future = waiter.waitUntilCaughtUpMember(raft);
jobScheduler.runJob();
jobScheduler.runJob();
try {
future.get(10, MILLISECONDS);
fail("Should have timed out.");
} catch (TimeoutException e) {
// expected
}
}
use of org.neo4j.test.OnDemandJobScheduler in project neo4j by neo4j.
the class HazelcastClientTest method shouldRegisterReadReplicaInTopology.
@Test
public void shouldRegisterReadReplicaInTopology() throws Throwable {
// given
com.hazelcast.core.Cluster cluster = mock(Cluster.class);
Set<Member> members = asSet(makeMember(1));
when(cluster.getMembers()).thenReturn(members);
Endpoint endpoint = mock(Endpoint.class);
when(endpoint.getUuid()).thenReturn("12345");
Client client = mock(Client.class);
final String clientId = "12345";
when(client.getUuid()).thenReturn(clientId);
ClientService clientService = mock(ClientService.class);
when(clientService.getConnectedClients()).thenReturn(asSet(client));
HazelcastMap hazelcastMap = new HazelcastMap();
HazelcastMultiMap hazelcastMultiMap = new HazelcastMultiMap();
HazelcastInstance hazelcastInstance = mock(HazelcastInstance.class);
when(hazelcastInstance.getAtomicReference(anyString())).thenReturn(mock(IAtomicReference.class));
when(hazelcastInstance.getMap(anyString())).thenReturn(hazelcastMap);
when(hazelcastInstance.getMultiMap(anyString())).thenReturn(hazelcastMultiMap);
when(hazelcastInstance.getLocalEndpoint()).thenReturn(endpoint);
when(hazelcastInstance.getExecutorService(anyString())).thenReturn(new StubExecutorService());
when(hazelcastInstance.getCluster()).thenReturn(cluster);
when(hazelcastInstance.getClientService()).thenReturn(clientService);
HazelcastConnector connector = mock(HazelcastConnector.class);
when(connector.connectToHazelcast()).thenReturn(hazelcastInstance);
OnDemandJobScheduler jobScheduler = new OnDemandJobScheduler();
HazelcastClient hazelcastClient = new HazelcastClient(connector, jobScheduler, NullLogProvider.getInstance(), config(), myself);
// when
hazelcastClient.start();
jobScheduler.runJob();
// then
assertEquals(1, hazelcastMap.size());
}
use of org.neo4j.test.OnDemandJobScheduler in project neo4j by neo4j.
the class HazelcastClientTest method shouldRemoveReadReplicasOnGracefulShutdown.
@Test
public void shouldRemoveReadReplicasOnGracefulShutdown() throws Throwable {
// given
com.hazelcast.core.Cluster cluster = mock(Cluster.class);
Set<Member> members = asSet(makeMember(1));
when(cluster.getMembers()).thenReturn(members);
Endpoint endpoint = mock(Endpoint.class);
when(endpoint.getUuid()).thenReturn("12345");
Client client = mock(Client.class);
final String clientId = "12345";
when(client.getUuid()).thenReturn(clientId);
ClientService clientService = mock(ClientService.class);
when(clientService.getConnectedClients()).thenReturn(asSet(client));
HazelcastMap hazelcastMap = new HazelcastMap();
HazelcastInstance hazelcastInstance = mock(HazelcastInstance.class);
when(hazelcastInstance.getAtomicReference(anyString())).thenReturn(mock(IAtomicReference.class));
when(hazelcastInstance.getMap(anyString())).thenReturn(hazelcastMap);
when(hazelcastInstance.getMultiMap(anyString())).thenReturn(new HazelcastMultiMap());
when(hazelcastInstance.getLocalEndpoint()).thenReturn(endpoint);
when(hazelcastInstance.getExecutorService(anyString())).thenReturn(new StubExecutorService());
when(hazelcastInstance.getCluster()).thenReturn(cluster);
when(hazelcastInstance.getClientService()).thenReturn(clientService);
HazelcastConnector connector = mock(HazelcastConnector.class);
when(connector.connectToHazelcast()).thenReturn(hazelcastInstance);
OnDemandJobScheduler jobScheduler = new OnDemandJobScheduler();
HazelcastClient hazelcastClient = new HazelcastClient(connector, jobScheduler, NullLogProvider.getInstance(), config(), myself);
hazelcastClient.start();
jobScheduler.runJob();
// when
hazelcastClient.stop();
// then
assertEquals(0, hazelcastMap.size());
}
use of org.neo4j.test.OnDemandJobScheduler in project neo4j by neo4j.
the class HazelcastClientTest method shouldReturnTopologyUsingHazelcastMembers.
@Test
public void shouldReturnTopologyUsingHazelcastMembers() throws Throwable {
// given
HazelcastConnector connector = mock(HazelcastConnector.class);
OnDemandJobScheduler jobScheduler = new OnDemandJobScheduler();
HazelcastClient client = new HazelcastClient(connector, jobScheduler, NullLogProvider.getInstance(), config(), myself);
HazelcastInstance hazelcastInstance = mock(HazelcastInstance.class);
when(connector.connectToHazelcast()).thenReturn(hazelcastInstance);
when(hazelcastInstance.getAtomicReference(anyString())).thenReturn(mock(IAtomicReference.class));
when(hazelcastInstance.getSet(anyString())).thenReturn(new HazelcastSet());
when(hazelcastInstance.getMultiMap(anyString())).thenReturn(new HazelcastMultiMap());
com.hazelcast.core.Cluster cluster = mock(Cluster.class);
when(hazelcastInstance.getCluster()).thenReturn(cluster);
when(hazelcastInstance.getExecutorService(anyString())).thenReturn(new StubExecutorService());
Set<Member> members = asSet(makeMember(1), makeMember(2));
when(cluster.getMembers()).thenReturn(members);
// when
client.start();
jobScheduler.runJob();
CoreTopology topology = client.coreServers();
// then
assertEquals(members.size(), topology.members().size());
}
use of org.neo4j.test.OnDemandJobScheduler in project neo4j by neo4j.
the class HazelcastClientTest method shouldReturnEmptyTopologyIfUnableToConnectToHazelcast.
@Test
public void shouldReturnEmptyTopologyIfUnableToConnectToHazelcast() throws Throwable {
// given
HazelcastConnector connector = mock(HazelcastConnector.class);
LogProvider logProvider = mock(LogProvider.class);
Log log = mock(Log.class);
when(logProvider.getLog(any(Class.class))).thenReturn(log);
HazelcastInstance hazelcastInstance = mock(HazelcastInstance.class);
when(connector.connectToHazelcast()).thenThrow(new IllegalStateException());
when(hazelcastInstance.getAtomicReference(anyString())).thenReturn(mock(IAtomicReference.class));
when(hazelcastInstance.getSet(anyString())).thenReturn(new HazelcastSet());
OnDemandJobScheduler jobScheduler = new OnDemandJobScheduler();
HazelcastClient client = new HazelcastClient(connector, jobScheduler, logProvider, config(), myself);
com.hazelcast.core.Cluster cluster = mock(Cluster.class);
when(hazelcastInstance.getCluster()).thenReturn(cluster);
Set<Member> members = asSet(makeMember(1), makeMember(2));
when(cluster.getMembers()).thenReturn(members);
// when
client.start();
jobScheduler.runJob();
CoreTopology topology = client.coreServers();
assertEquals(0, topology.members().size());
}
Aggregations