@Test public void blacklistIncompatiblePeerWhoIssuesDisconnect() { final PeerBlacklist blacklist = new PeerBlacklist(); final PeerConnection peer = generatePeerConnection(); assertThat(blacklist.contains(peer)).isFalse(); blacklist.onDisconnect(peer, DisconnectReason.INCOMPATIBLE_P2P_PROTOCOL_VERSION, true); assertThat(blacklist.contains(peer)).isTrue(); }
@Test public void doesNotBlacklistPeerForNormalDisconnect() { final PeerBlacklist blacklist = new PeerBlacklist(); final PeerConnection peer = generatePeerConnection(); assertThat(blacklist.contains(peer)).isFalse(); blacklist.onDisconnect(peer, DisconnectReason.TOO_MANY_PEERS, false); assertThat(blacklist.contains(peer)).isFalse(); }
@Test public void doesNotBlacklistPeerForOurBadBehavior() { final PeerBlacklist blacklist = new PeerBlacklist(); final PeerConnection peer = generatePeerConnection(); assertThat(blacklist.contains(peer)).isFalse(); blacklist.onDisconnect(peer, DisconnectReason.BREACH_OF_PROTOCOL, true); assertThat(blacklist.contains(peer)).isFalse(); }
@Test public void blacklistPeerForBadBehavior() { final PeerBlacklist blacklist = new PeerBlacklist(); final PeerConnection peer = generatePeerConnection(); assertThat(blacklist.contains(peer)).isFalse(); blacklist.onDisconnect(peer, DisconnectReason.BREACH_OF_PROTOCOL, false); assertThat(blacklist.contains(peer)).isTrue(); }
@Test public void blacklistIncompatiblePeer() { final PeerBlacklist blacklist = new PeerBlacklist(); final PeerConnection peer = generatePeerConnection(); assertThat(blacklist.contains(peer)).isFalse(); blacklist.onDisconnect(peer, DisconnectReason.INCOMPATIBLE_P2P_PROTOCOL_VERSION, false); assertThat(blacklist.contains(peer)).isTrue(); }
assertThat(blacklist.contains(peer1)).isTrue(); assertThat(blacklist.contains(peer2)).isFalse(); assertThat(blacklist.contains(peer3)).isFalse(); assertThat(blacklist.contains(peer1)).isTrue(); assertThat(blacklist.contains(peer2)).isTrue(); assertThat(blacklist.contains(peer3)).isFalse(); assertThat(blacklist.contains(peer1)).isFalse(); assertThat(blacklist.contains(peer2)).isTrue(); assertThat(blacklist.contains(peer3)).isTrue(); assertThat(blacklist.contains(peer1)).isTrue(); assertThat(blacklist.contains(peer2)).isFalse(); assertThat(blacklist.contains(peer3)).isTrue(); assertThat(blacklist.contains(peer1)).isTrue(); assertThat(blacklist.contains(peer2)).isTrue(); assertThat(blacklist.contains(peer3)).isFalse();
@Test public void bannedNodesDoNotRollover() { final Peer bannedPeer = generatePeer(); final Peer peer1 = generatePeer(); final Peer peer2 = generatePeer(); final Peer peer3 = generatePeer(); final PeerBlacklist blacklist = new PeerBlacklist(2, Collections.singleton(bannedPeer.getId())); assertThat(blacklist.contains(bannedPeer)).isTrue(); assertThat(blacklist.contains(peer1)).isFalse(); assertThat(blacklist.contains(peer2)).isFalse(); assertThat(blacklist.contains(peer3)).isFalse(); // fill to the limit blacklist.add(peer1.getId()); blacklist.add(peer2.getId()); assertThat(blacklist.contains(bannedPeer)).isTrue(); assertThat(blacklist.contains(peer1)).isTrue(); assertThat(blacklist.contains(peer2)).isTrue(); assertThat(blacklist.contains(peer3)).isFalse(); // trigger rollover blacklist.add(peer3.getId()); assertThat(blacklist.contains(bannedPeer)).isTrue(); assertThat(blacklist.contains(peer1)).isFalse(); assertThat(blacklist.contains(peer2)).isTrue(); assertThat(blacklist.contains(peer3)).isTrue(); }