myServer = next(0);
@Test public void testReResolvingLocalhost() { byte size = 2; ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size); // Test a hostname that resolves to multiple addresses list.add(InetSocketAddress.createUnresolved("localhost", 1234)); list.add(InetSocketAddress.createUnresolved("localhost", 1235)); StaticHostProvider hostProvider = new StaticHostProvider(list); int sizeBefore = hostProvider.size(); InetSocketAddress next = hostProvider.next(0); next = hostProvider.next(0); assertTrue("Different number of addresses in the list: " + hostProvider.size() + " (after), " + sizeBefore + " (before)", hostProvider.size() == sizeBefore); }
@Test public void testReResolvingSingle() throws UnknownHostException { // Arrange byte size = 1; ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size); // Test a hostname that resolves to a single address list.add(InetSocketAddress.createUnresolved("issues.apache.org", 1234)); final InetAddress issuesApacheOrg = mock(InetAddress.class); when(issuesApacheOrg.getHostAddress()).thenReturn("192.168.1.1"); when(issuesApacheOrg.toString()).thenReturn("issues.apache.org"); when(issuesApacheOrg.getHostName()).thenReturn("issues.apache.org"); StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() { @Override public InetAddress[] getAllByName(String name) { return new InetAddress[] { issuesApacheOrg }; } }; StaticHostProvider.Resolver spyResolver = spy(resolver); // Act StaticHostProvider hostProvider = new StaticHostProvider(list, spyResolver); for (int i = 0; i < 10; i++) { InetSocketAddress next = hostProvider.next(0); assertEquals(issuesApacheOrg, next.getAddress()); } // Assert // Resolver called 10 times, because we shouldn't cache the resolved addresses verify(spyResolver, times(10)).getAllByName("issues.apache.org"); // resolution occurred }
@Test public void testInvalidHostAddresses() { // Arrange final List<InetSocketAddress> invalidAddresses = new ArrayList<>(); InetSocketAddress unresolved = InetSocketAddress.createUnresolved("a", 1234); invalidAddresses.add(unresolved); StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() { @Override public InetAddress[] getAllByName(String name) throws UnknownHostException { throw new UnknownHostException(); } }; StaticHostProvider sp = new StaticHostProvider(invalidAddresses, resolver); // Act & Assert InetSocketAddress n1 = sp.next(0); assertTrue("Provider should return unresolved address is host is unresolvable", n1.isUnresolved()); assertSame("Provider should return original address is host is unresolvable", unresolved, n1); }
InetSocketAddress resolvedFirst = hostProvider.next(0); assertFalse("HostProvider should return resolved addresses", resolvedFirst.isUnresolved()); assertThat("Bad IP address returned", ipList, hasItems(resolvedFirst.getAddress().getHostAddress())); InetSocketAddress resolvedSecond = hostProvider.next(0); assertFalse("HostProvider should return resolved addresses", resolvedSecond.isUnresolved()); assertThat("Bad IP address returned", ipList, hasItems(resolvedSecond.getAddress().getHostAddress())); InetSocketAddress resolvedThird = hostProvider.next(0); assertFalse("HostProvider should return resolved addresses", resolvedThird.isUnresolved()); assertThat("Bad IP address returned", ipList, hasItems(resolvedThird.getAddress().getHostAddress()));
InetSocketAddress next = hostProvider.next(0); assertThat("Bad IP address returned", next.getAddress().getHostAddress(), anyOf(equalTo(apacheOrg1.getHostAddress()), equalTo(apacheOrg2.getHostAddress()))); assertEquals(1, hostProvider.size()); // resolve() call keeps the size of provider
InetSocketAddress resolved = hostProvider.next(0); hostProvider.onConnected(); if (resolved.getHostName().equals("www.google.com")) {
hostProviderArray[i] = getHostProvider((byte) 9); if (i >= (numClients / 2)) { curHostForEachClient[i] = hostProviderArray[i].next(0); } else { curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); else if (curHostForEachClient[i] == null) { myServer); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; hostProviderArray[i].onConnected();