@Test public void simpleDiscoverable() throws Exception { Map.Entry<DiscoveryService, DiscoveryServiceClient> entry = create(); DiscoveryService discoveryService = entry.getKey(); DiscoveryServiceClient discoveryServiceClient = entry.getValue(); // Register one service running on one host:port Cancellable cancellable = register(discoveryService, "foo", "localhost", 8090); // Discover that registered host:port. ServiceDiscovered serviceDiscovered = discoveryServiceClient.discover("foo"); Assert.assertTrue(waitTillExpected(1, serviceDiscovered)); Discoverable discoverable = new Discoverable() { @Override public String getName() { return "foo"; } @Override public InetSocketAddress getSocketAddress() { return new InetSocketAddress("localhost", 8090); } }; // Check it exists. Assert.assertTrue(serviceDiscovered.contains(discoverable)); // Remove the service cancellable.cancel(); // There should be no service. Assert.assertTrue(waitTillExpected(0, serviceDiscovered)); Assert.assertFalse(serviceDiscovered.contains(discoverable)); }