public void testConstructor() {
    DNSPseudoURL url = null;

    url = new DNSPseudoURL("dns://super.puper.server.ru:54/sub.domain.com");
    assertEquals("super.puper.server.ru", url.getHost());
    assertFalse(url.isHostIpGiven());
    assertEquals(54, url.getPort());
    assertEquals("sub.domain.com.", url.getDomain());

    url = new DNSPseudoURL("dns://123.456.678.1/example.com.");
    assertEquals("123.456.678.1", url.getHost());
    assertTrue(url.isHostIpGiven());
    assertEquals(53, url.getPort());
    assertEquals("example.com.", url.getDomain());

    try {
      url = new DNSPseudoURL("dns://a.com/domain.com/mama");
      fail("IllegalArgumentException was not thrown");
    } catch (IllegalArgumentException e) {
      // correct behaviour
    }
  }
  public void testConstructorDefaults() {
    DNSPseudoURL url;

    url = new DNSPseudoURL("dns://www.mydomain.ru");
    assertEquals("www.mydomain.ru", url.getHost());
    assertFalse(url.isHostIpGiven());
    assertEquals(53, url.getPort());
    assertEquals(".", url.getDomain());

    url = new DNSPseudoURL("dns:/mydomain.org");
    assertEquals("localhost", url.getHost());
    assertFalse(url.isHostIpGiven());
    assertEquals(53, url.getPort());
    assertEquals("mydomain.org.", url.getDomain());

    url = new DNSPseudoURL("dns:");
    assertEquals("localhost", url.getHost());
    assertFalse(url.isHostIpGiven());
    assertEquals(53, url.getPort());
    assertEquals(".", url.getDomain());
  }