### Question:
NodeImpl implements Node { @Subscribe public void onReceiveInstallSnapshotResult(InstallSnapshotResultMessage resultMessage) { context.taskExecutor().submit( () -> doProcessInstallSnapshotResult(resultMessage), LOGGING_FUTURE_CALLBACK ); } NodeImpl(NodeContext context); @Override synchronized void registerStateMachine(@Nonnull StateMachine stateMachine); @Override @Nonnull RoleNameAndLeaderId getRoleNameAndLeaderId(); @Override void addNodeRoleListener(@Nonnull NodeRoleListener listener); @Override synchronized void start(); @Override void appendLog(@Nonnull byte[] commandBytes); @Override @Nonnull GroupConfigChangeTaskReference addNode(@Nonnull NodeEndpoint endpoint); @Override @Nonnull GroupConfigChangeTaskReference removeNode(@Nonnull NodeId id); @Subscribe void onReceiveRequestVoteRpc(RequestVoteRpcMessage rpcMessage); @Subscribe void onReceiveRequestVoteResult(RequestVoteResult result); @Subscribe void onReceiveAppendEntriesRpc(AppendEntriesRpcMessage rpcMessage); @Subscribe void onReceiveAppendEntriesResult(AppendEntriesResultMessage resultMessage); @Subscribe void onReceiveInstallSnapshotRpc(InstallSnapshotRpcMessage rpcMessage); @Subscribe void onReceiveInstallSnapshotResult(InstallSnapshotResultMessage resultMessage); @Subscribe void onGroupConfigEntryFromLeaderAppend(GroupConfigEntryFromLeaderAppendEvent event); @Subscribe void onGroupConfigEntryCommitted(GroupConfigEntryCommittedEvent event); @Subscribe void onGroupConfigEntryBatchRemoved(GroupConfigEntryBatchRemovedEvent event); @Subscribe void onGenerateSnapshot(SnapshotGenerateEvent event); @Subscribe void onReceiveDeadEvent(DeadEvent deadEvent); @Override synchronized void stop();  }### Answer:
@Test public void testOnReceiveInstallSnapshotResult() { NodeImpl node = (NodeImpl) newNodeBuilder( NodeId.of("A"), new NodeEndpoint("A", "localhost", 2333), new NodeEndpoint("B", "localhost", 2334), new NodeEndpoint("C", "localhost", 2335)) .setStore(new MemoryNodeStore(1, null)) .build(); MockConnector mockConnector = (MockConnector) node.getContext().connector(); node.start(); node.electionTimeout(); mockConnector.clearMessage(); node.onReceiveRequestVoteResult(new RequestVoteResult(2, true)); InstallSnapshotRpc installSnapshotRpc = new InstallSnapshotRpc(); installSnapshotRpc.setDone(false); installSnapshotRpc.setData(new byte[0]); node.onReceiveInstallSnapshotResult(new InstallSnapshotResultMessage( new InstallSnapshotResult(2), NodeId.of("C"), installSnapshotRpc)); Assert.assertEquals(NodeId.of("C"), mockConnector.getDestinationNodeId()); Assert.assertTrue(mockConnector.getRpc() instanceof InstallSnapshotRpc); }