/** * Replaces an unresolved InetSocketAddress with a resolved instance in the case that * the passed address is unresolved. * * @param inetSocketAddress socket address instance to process * @return resolved instance with same host string and port */ public static InetSocketAddress replaceWithResolved( InetSocketAddress inetSocketAddress) { if (!inetSocketAddress.isUnresolved()) { return inetSocketAddress; } inetSocketAddress = replaceUnresolvedNumericIp(inetSocketAddress); if (!inetSocketAddress.isUnresolved()) { return inetSocketAddress; } else { return new InetSocketAddress(inetSocketAddress.getHostString(), inetSocketAddress.getPort()); } }
/** * Replaces an unresolved InetSocketAddress with a resolved instance in the case that * the passed address is unresolved. * * @param inetSocketAddress socket address instance to process * @return resolved instance with same host string and port */ public static InetSocketAddress replaceWithResolved( InetSocketAddress inetSocketAddress) { if (!inetSocketAddress.isUnresolved()) { return inetSocketAddress; } inetSocketAddress = replaceUnresolvedNumericIp(inetSocketAddress); if (!inetSocketAddress.isUnresolved()) { return inetSocketAddress; } else { return new InetSocketAddress(inetSocketAddress.getHostString(), inetSocketAddress.getPort()); } }
@Test public void shouldReplaceNumericIPAddressWithResolvedInstance() { InetSocketAddress socketAddress = InetSocketAddress.createUnresolved("127.0.0.1", 8080); InetSocketAddress replacedAddress = InetSocketAddressUtil .replaceUnresolvedNumericIp(socketAddress); assertThat(replacedAddress).isNotSameAs(socketAddress); assertThat(socketAddress.isUnresolved()).isTrue(); assertThat(replacedAddress.isUnresolved()).isFalse(); assertThat(replacedAddress.getAddress().getHostAddress()).isEqualTo("127.0.0.1"); assertThat(replacedAddress.getPort()).isEqualTo(8080); assertThat(replacedAddress.getHostString()).isEqualTo("127.0.0.1"); }
@Test public void shouldNotReplaceIfAlreadyResolvedWhenCallingReplaceUnresolveNumericIp() { InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 80); InetSocketAddress processedAddress = InetSocketAddressUtil .replaceUnresolvedNumericIp(socketAddress); assertThat(processedAddress).isSameAs(socketAddress); }
@Test public void shouldNotReplaceIfNonNumeric() { InetSocketAddress socketAddress = InetSocketAddress.createUnresolved("google.com", 80); InetSocketAddress processedAddress = InetSocketAddressUtil .replaceUnresolvedNumericIp(socketAddress); assertThat(processedAddress).isSameAs(socketAddress); }