use of com.alibaba.graphscope.groot.coordinator.NotifyFrontendListener in project GraphScope by alibaba.
the class SnapshotNotifierTest method testSnapshotNotifier.
@Test
void testSnapshotNotifier() {
NodeDiscovery discovery = mock(NodeDiscovery.class);
SnapshotManager snapshotManager = mock(SnapshotManager.class);
RoleClients<FrontendSnapshotClient> roleClients = mock(RoleClients.class);
SnapshotNotifier snapshotNotifier = new SnapshotNotifier(discovery, snapshotManager, null, roleClients);
snapshotNotifier.start();
MaxGraphNode localNode = MaxGraphNode.createLocalNode(Configs.newBuilder().put(CommonConfig.ROLE_NAME.getKey(), RoleType.COORDINATOR.getName()).build(), 1111);
snapshotNotifier.nodesJoin(RoleType.FRONTEND, Collections.singletonMap(1, localNode));
ArgumentCaptor<NotifyFrontendListener> captor = ArgumentCaptor.forClass(NotifyFrontendListener.class);
verify(snapshotManager).addListener(captor.capture());
NotifyFrontendListener listener = captor.getValue();
snapshotNotifier.nodesLeft(RoleType.FRONTEND, Collections.singletonMap(1, localNode));
verify(snapshotManager).removeListener(listener);
}
use of com.alibaba.graphscope.groot.coordinator.NotifyFrontendListener in project GraphScope by alibaba.
the class NotifyFrontendListenerTest method testListener.
@Test
void testListener() {
FrontendSnapshotClient frontendSnapshotClient = mock(FrontendSnapshotClient.class);
SchemaManager schemaManager = mock(SchemaManager.class);
GraphDef graphDef = GraphDef.newBuilder().setVersion(3L).build();
when(schemaManager.getGraphDef()).thenReturn(graphDef);
doAnswer(invocationOnMock -> {
long snapshotId = invocationOnMock.getArgument(0);
CompletionCallback<Long> callback = invocationOnMock.getArgument(2);
callback.onCompleted(snapshotId - 1);
return null;
}).when(frontendSnapshotClient).advanceQuerySnapshot(anyLong(), any(), any());
NotifyFrontendListener listener = new NotifyFrontendListener(0, frontendSnapshotClient, schemaManager);
listener.snapshotAdvanced(10L, 10L);
verify(frontendSnapshotClient).advanceQuerySnapshot(eq(10L), eq(graphDef), any());
listener.snapshotAdvanced(20L, 10L);
verify(frontendSnapshotClient).advanceQuerySnapshot(eq(20L), isNull(), any());
}
Aggregations