Search in sources :

Example 1 with SnapshotNotifier

use of com.alibaba.graphscope.groot.coordinator.SnapshotNotifier 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);
}
Also used : SnapshotNotifier(com.alibaba.graphscope.groot.coordinator.SnapshotNotifier) MaxGraphNode(com.alibaba.graphscope.groot.discovery.MaxGraphNode) NotifyFrontendListener(com.alibaba.graphscope.groot.coordinator.NotifyFrontendListener) NodeDiscovery(com.alibaba.graphscope.groot.discovery.NodeDiscovery) FrontendSnapshotClient(com.alibaba.graphscope.groot.coordinator.FrontendSnapshotClient) SnapshotManager(com.alibaba.graphscope.groot.coordinator.SnapshotManager) Test(org.junit.jupiter.api.Test)

Aggregations

FrontendSnapshotClient (com.alibaba.graphscope.groot.coordinator.FrontendSnapshotClient)1 NotifyFrontendListener (com.alibaba.graphscope.groot.coordinator.NotifyFrontendListener)1 SnapshotManager (com.alibaba.graphscope.groot.coordinator.SnapshotManager)1 SnapshotNotifier (com.alibaba.graphscope.groot.coordinator.SnapshotNotifier)1 MaxGraphNode (com.alibaba.graphscope.groot.discovery.MaxGraphNode)1 NodeDiscovery (com.alibaba.graphscope.groot.discovery.NodeDiscovery)1 Test (org.junit.jupiter.api.Test)1