@Test public void testBestBlock() { // arrange Peer peer = Peer.valueOf("ynode://75bff16c@127.0.0.1:32918"); BestBlock bb = BestBlock.of(TestConstants.STEM, 0); // act peer.updateBestBlock(bb); //assert assertThat(peer.getBestBlocks()).containsOnly(bb); } }
@Test public void findPeers() { doAnswer((invocationOnMock) -> { StreamObserver<Proto.BlockList> argument = invocationOnMock.getArgument(1); argument.onNext(null); argument.onCompleted(); return null; }).when(peerService).findPeers(findPeersRequestCaptor.capture(), any()); Peer owner = Peer.valueOf("ynode://75bff16c@127.0.0.1:32918"); owner.updateBestBlock(BestBlock.of(TestConstants.STEM, 0)); peerHandler.findPeers(owner); verify(peerService).findPeers(findPeersRequestCaptor.capture(), any()); assertEquals("127.0.0.1", findPeersRequestCaptor.getValue().getIp()); assertEquals(32918, findPeersRequestCaptor.getValue().getPort()); Proto.BestBlock bestBlock = findPeersRequestCaptor.getValue().getBestBlocks(0); assertArrayEquals(TestConstants.STEM.getBytes(), bestBlock.getBranch().toByteArray()); assertEquals(0, bestBlock.getIndex()); }
@Override public void findPeers(Proto.RequestPeer request, StreamObserver<Proto.PeerList> responseObserver) { Peer peer = Peer.valueOf(request.getPubKey(), request.getIp(), request.getPort()); for (Proto.BestBlock bestBlock : request.getBestBlocksList()) { BestBlock bb = toBestBlock(bestBlock); peer.updateBestBlock(bb); } List<String> list = discoveryConsumer.findPeers(peer); Proto.PeerList.Builder peerListBuilder = Proto.PeerList.newBuilder(); for (String url : list) { peerListBuilder.addPeers(Proto.PeerInfo.newBuilder().setUrl(url).build()); } Proto.PeerList peerList = peerListBuilder.build(); responseObserver.onNext(peerList); responseObserver.onCompleted(); discoveryConsumer.afterFindPeersResponse(); }
@Test public void testUpdatedWithLatestPeer() { // arrange Peer newPeerWithBestBlock = Peer.valueOf(peer1.getYnodeUri()); newPeerWithBestBlock.updateBestBlock(BestBlock.of(TestConstants.STEM, 0)); bucket.addPeer(peer1); assert bucket.findByPeer(peer1).getBestBlocks().size() == 0; // act bucket.addPeer(newPeerWithBestBlock); // assert assert bucket.getPeers().size() == 1; assert bucket.findByPeer(peer1).getBestBlocks().size() == 1; } }