diff --git a/core/src/main/java/io/bisq/core/network/NodeAddresses.java b/core/src/main/java/io/bisq/core/network/NodeAddresses.java index a518750c06..3601aa69b6 100644 --- a/core/src/main/java/io/bisq/core/network/NodeAddresses.java +++ b/core/src/main/java/io/bisq/core/network/NodeAddresses.java @@ -26,7 +26,7 @@ class NodeAddresses extends ImmutableSetDecorator { Set copy = new HashSet<>(this); copy.removeIf(address -> { String hostName = address.getHostName(); - return !hosts.contains(hostName); + return hosts.contains(hostName); }); return new NodeAddresses(copy); } diff --git a/core/src/test/java/io/bisq/core/network/NodeAddressesTest.java b/core/src/test/java/io/bisq/core/network/NodeAddressesTest.java new file mode 100644 index 0000000000..ecfc236c7b --- /dev/null +++ b/core/src/test/java/io/bisq/core/network/NodeAddressesTest.java @@ -0,0 +1,77 @@ +package io.bisq.core.network; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import io.bisq.network.p2p.NodeAddress; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.junit.Before; +import org.junit.Test; + +import java.security.Security; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import static org.junit.Assert.assertEquals; + +public class NodeAddressesTest { + @Before + public void setUp() { + Security.addProvider(new BouncyCastleProvider()); + } + + @Test + public void testCollector() { + List addresses = Lists.newArrayList( + new NodeAddress("192.168.0.1:1111"), + new NodeAddress("192.168.0.1:1111"), + new NodeAddress("192.168.0.2:2222")); + Set expected = new HashSet<>(addresses); + + NodeAddresses actual = addresses.stream() + .collect(NodeAddresses.collector()); + + assertEquals(expected, actual); + } + + @Test + public void testExcludeByFullAddress() { + Set delegate = Sets.newHashSet( + new NodeAddress("192.168.0.1:1111"), + new NodeAddress("192.168.0.2:2222")); + NodeAddresses addresses = new NodeAddresses(delegate); + NodeAddresses actual = addresses.excludeByFullAddress("192.168.0.1:1111"); + + assertEquals(1, actual.size()); + } + + @Test + public void testExcludeByHost() { + Set delegate = Sets.newHashSet( + new NodeAddress("aaa:1111"), + new NodeAddress("aaa:2222"), + new NodeAddress("bbb:1111"), + new NodeAddress("bbb:2222"), + new NodeAddress("ccc:1111"), + new NodeAddress("ccc:2222")); + NodeAddresses addresses = new NodeAddresses(delegate); + + Set hosts = Sets.newHashSet("aaa", "bbb"); + NodeAddresses actual = addresses.excludeByHost(hosts); + + Set expected = Sets.newHashSet( + new NodeAddress("ccc:1111"), + new NodeAddress("ccc:2222")); + + assertEquals(expected, actual); + } + + @Test + public void testFromString() { + Set expected = Sets.newHashSet( + new NodeAddress("192.168.0.1:1111"), + new NodeAddress("192.168.0.2:2222")); + NodeAddresses actual = NodeAddresses.fromString("192.168.0.1:1111, 192.168.0.2:2222"); + assertEquals(expected, actual); + } +}