@Before public void setUp() { controller = new NodeWhitelistController(new PermissioningConfiguration()); }
@Test public void whenAddNodesInputHasExistingNodeShouldReturnAddErrorExistingEntry() { controller.addNode(DefaultPeer.fromURI(enode1)); NodesWhitelistResult expected = new NodesWhitelistResult(NodesWhitelistResultType.ERROR_EXISTING_ENTRY); NodesWhitelistResult actualResult = controller.addNodes( Lists.newArrayList(DefaultPeer.fromURI(enode1), DefaultPeer.fromURI(enode2))); assertThat(actualResult).isEqualToComparingOnlyGivenFields(expected, "result"); }
@Test public void shouldRemoveSingleValidNode() { final JsonRpcRequest request = buildRequest(Lists.newArrayList(enode1)); final JsonRpcResponse expected = new JsonRpcSuccessResponse(request.getId(), SUCCESS_RESULT); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.removeNodes(any())) .thenReturn(new NodesWhitelistResult(NodesWhitelistResultType.SUCCESS)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).removeNodes(any()); verifyNoMoreInteractions(nodeWhitelistController); }
@Test public void shouldReturnSuccessResponseWhenListSetAndEmpty() { final JsonRpcRequest request = buildRequest(); final JsonRpcResponse expected = new JsonRpcSuccessResponse(request.getId(), Lists.emptyList()); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.nodeWhitelistSet()).thenReturn(true); when(nodeWhitelistController.getNodesWhitelist()).thenReturn(buildNodesList()); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).nodeWhitelistSet(); verify(nodeWhitelistController, times(1)).getNodesWhitelist(); verifyNoMoreInteractions(nodeWhitelistController); }
NodeWhitelistController nodeWhitelistController = new NodeWhitelistController(config); nodeWhitelistController.addNode(discoPeer); nodeWhitelistController.addNode(otherPeer2);
@Test public void shouldAddSingleValidNode() { final JsonRpcRequest request = buildRequest(Lists.newArrayList(enode1)); final JsonRpcResponse expected = new JsonRpcSuccessResponse(request.getId(), JSON_SUCCESS); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.addNodes(any())) .thenReturn(new NodesWhitelistResult(NodesWhitelistResultType.SUCCESS)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).addNodes(any()); verifyNoMoreInteractions(nodeWhitelistController); }
@Test public void shouldReturnFailResponseWhenListNotSet() { final JsonRpcRequest request = buildRequest(); final JsonRpcResponse expected = new JsonRpcErrorResponse(request.getId(), JsonRpcError.NODE_WHITELIST_NOT_SET); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.nodeWhitelistSet()).thenReturn(false); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).nodeWhitelistSet(); verifyNoMoreInteractions(nodeWhitelistController); }
final PeerBlacklist remoteBlacklist = new PeerBlacklist(); final PermissioningConfiguration config = PermissioningConfiguration.createDefault(); final NodeWhitelistController localWhitelist = new NodeWhitelistController(config); localWhitelist.addNode(mockPeer()); remoteBlacklist, new NoOpMetricsSystem(), new NodeWhitelistController(PermissioningConfiguration.createDefault()))) { final int localListenPort = localNetwork.getLocalPeerInfo().getPort(); final Peer localPeer =
@Test public void shouldAddMultipleValidNodes() { final JsonRpcRequest request = buildRequest(Lists.newArrayList(enode1, enode2, enode3)); final JsonRpcResponse expected = new JsonRpcSuccessResponse(request.getId(), JSON_SUCCESS); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.addNodes(any())) .thenReturn(new NodesWhitelistResult(NodesWhitelistResultType.SUCCESS)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).addNodes(any()); verifyNoMoreInteractions(nodeWhitelistController); }
@Test public void shouldReturnSuccessResponseWhenListPopulated() { final JsonRpcRequest request = buildRequest(); final JsonRpcResponse expected = new JsonRpcSuccessResponse(request.getId(), Lists.newArrayList(enode1, enode2, enode3)); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.nodeWhitelistSet()).thenReturn(true); when(nodeWhitelistController.getNodesWhitelist()) .thenReturn(buildNodesList(enode1, enode2, enode3)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).nodeWhitelistSet(); verify(nodeWhitelistController, times(1)).getNodesWhitelist(); verifyNoMoreInteractions(nodeWhitelistController); }
@Test(expected = IllegalArgumentException.class) public void createPeerDiscoveryAgent_NullKeyPair() throws IOException { try (final P2PNetwork broken = new NettyP2PNetwork( vertx, null, configWithRandomPorts(), emptyList(), () -> true, new PeerBlacklist(), new NoOpMetricsSystem(), new NodeWhitelistController(PermissioningConfiguration.createDefault()))) { Assertions.fail("Expected Exception"); } }
@Test public void shouldRemoveMultipleValidNodes() { final JsonRpcRequest request = buildRequest(Lists.newArrayList(enode1, enode2, enode3)); final JsonRpcResponse expected = new JsonRpcSuccessResponse(request.getId(), SUCCESS_RESULT); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.removeNodes(any())) .thenReturn(new NodesWhitelistResult(NodesWhitelistResultType.SUCCESS)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); verify(nodeWhitelistController, times(1)).removeNodes(any()); verifyNoMoreInteractions(nodeWhitelistController); }
@Test public void whenAddNodesInputHasDuplicatedNodesShouldReturnDuplicatedEntryError() { NodesWhitelistResult expected = new NodesWhitelistResult(NodesWhitelistResultType.ERROR_DUPLICATED_ENTRY); NodesWhitelistResult actualResult = controller.addNodes( Arrays.asList(DefaultPeer.fromURI(enode1), DefaultPeer.fromURI(enode1))); assertThat(actualResult).isEqualToComparingOnlyGivenFields(expected, "result"); }
() -> true, new PeerBlacklist(), new NodeWhitelistController(PermissioningConfiguration.createDefault()), new Subscribers<>())); controller.start();
@Test public void whenRemoveNodesInputHasDuplicateNodesShouldReturnErrorDuplicatedEntry() { NodesWhitelistResult expected = new NodesWhitelistResult(NodesWhitelistResultType.ERROR_DUPLICATED_ENTRY); NodesWhitelistResult actualResult = controller.removeNodes( Lists.newArrayList(DefaultPeer.fromURI(enode1), DefaultPeer.fromURI(enode1))); assertThat(actualResult).isEqualToComparingOnlyGivenFields(expected, "result"); } }
@Test public void whenRequestContainsDuplicatedNodesShouldReturnDuplicatedEntryError() { final JsonRpcRequest request = buildRequest(Lists.newArrayList(enode1, enode1)); final JsonRpcResponse expected = new JsonRpcErrorResponse(request.getId(), JsonRpcError.NODE_WHITELIST_DUPLICATED_ENTRY); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.addNodes(any())) .thenReturn(new NodesWhitelistResult(NodesWhitelistResultType.ERROR_DUPLICATED_ENTRY)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); }
@Test public void createPeerDiscoveryAgent_NoActivePeers() { final SECP256K1.KeyPair keyPair = SECP256K1.KeyPair.generate(); try (final NettyP2PNetwork agent = new NettyP2PNetwork( vertx, keyPair, configWithRandomPorts(), emptyList(), () -> true, new PeerBlacklist(), new NoOpMetricsSystem(), new NodeWhitelistController(PermissioningConfiguration.createDefault()))) { assertTrue(agent.getDiscoveryPeers().isEmpty()); assertEquals(0, agent.getPeers().size()); } } }
@Test public void whenRemoveNodesInputHasAbsentNodeShouldReturnRemoveErrorAbsentEntry() { NodesWhitelistResult expected = new NodesWhitelistResult(NodesWhitelistResultType.ERROR_ABSENT_ENTRY); NodesWhitelistResult actualResult = controller.removeNodes( Lists.newArrayList(DefaultPeer.fromURI(enode1), DefaultPeer.fromURI(enode2))); assertThat(actualResult).isEqualToComparingOnlyGivenFields(expected, "result"); }
() -> true, new PeerBlacklist(), new NodeWhitelistController(PermissioningConfiguration.createDefault()), new Subscribers<>()); controller.start();
@Test public void whenRequestContainsDuplicatedNodesShouldReturnDuplicatedEntryError() { final JsonRpcRequest request = buildRequest(Lists.newArrayList(enode1, enode1)); final JsonRpcResponse expected = new JsonRpcErrorResponse(request.getId(), JsonRpcError.NODE_WHITELIST_DUPLICATED_ENTRY); when(p2pNetwork.getNodeWhitelistController()).thenReturn(nodeWhitelistController); when(nodeWhitelistController.removeNodes(any())) .thenReturn(new NodesWhitelistResult(NodesWhitelistResultType.ERROR_DUPLICATED_ENTRY)); final JsonRpcResponse actual = method.response(request); assertThat(actual).isEqualToComparingFieldByFieldRecursively(expected); }