⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nametest.java

📁 DNS Java 是java实现的DNS
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	assertEquals(exp, n);    }    public void test_fromDNAME_toobig() throws NameTooLongException, TextParseException    {	Name own = new Name("the.owner.");	Name alias = new Name("the.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.");	DNAMERecord dnr = new DNAMERecord(own, DClass.IN, 0xABCD, alias);	Name sub = new Name("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd.the.owner.");	try {	    sub.fromDNAME(dnr);	    fail("NameTooLongException not thrown");	}	catch(NameTooLongException e){}    }    public void test_fromDNAME_disjoint() throws NameTooLongException, TextParseException    {	Name own = new Name("the.owner.");	Name alias = new Name("the.alias.");	DNAMERecord dnr = new DNAMERecord(own, DClass.IN, 0xABCD, alias);		Name sub = new Name("sub.the.other");	assertNull(sub.fromDNAME(dnr));    }    public void test_subdomain_abs() throws TextParseException    {	Name dom = new Name("the.domain.");	Name sub = new Name("sub.of.the.domain.");	assertTrue(sub.subdomain(dom));	assertFalse(dom.subdomain(sub));    }    public void test_subdomain_rel() throws TextParseException    {	Name dom = new Name("the.domain");	Name sub = new Name("sub.of.the.domain");	assertTrue(sub.subdomain(dom));	assertFalse(dom.subdomain(sub));    }    public void test_subdomain_equal() throws TextParseException    {	Name dom = new Name("the.domain");	Name sub = new Name("the.domain");	assertTrue(sub.subdomain(dom));	assertTrue(dom.subdomain(sub));    }    public void test_toString_abs() throws TextParseException    {	String in = "This.Is.My.Absolute.Name.";	Name n = new Name(in);		assertEquals(in, n.toString());    }    public void test_toString_rel() throws TextParseException    {	String in = "This.Is.My.Relative.Name";	Name n = new Name(in);		assertEquals(in, n.toString());    }    public void test_toString_at() throws TextParseException    {	Name n = new Name("@", null);	assertEquals("@", n.toString());    }    public void test_toString_root() throws TextParseException    {	assertEquals(".", Name.root.toString());    }    public void test_toString_wild() throws TextParseException    {	String in = "*.A.b.c.e";	Name n = new Name(in);	assertEquals(in, n.toString());    }    public void test_toString_escaped() throws TextParseException    {	String in = "my.escaped.junk\\128.label.";	Name n = new Name(in);	assertEquals(in, n.toString());    }    public void test_toString_special_char() throws TextParseException, WireParseException    {	byte[] raw = new byte[] { 1, '"', 1, '(', 1, ')', 1, '.', 1, ';', 1, '\\', 1, '@', 1, '$', 0 };	String exp = "\\\".\\(.\\).\\..\\;.\\\\.\\@.\\$.";	Name n = new Name(new DNSInput(raw));	assertEquals(exp, n.toString());    }    public static class Test_toWire extends TestCase    {	public void test_rel() throws TextParseException	{	    Name n = new Name("A.Relative.Name");	    try {		n.toWire(new DNSOutput(), null);		fail("IllegalArgumentException not thrown");	    }	    catch(IllegalArgumentException e){}	}	public void test_null_Compression() throws TextParseException	{	    byte[] raw = new byte[] { 1, 'A', 5, 'B', 'a', 's', 'i', 'c', 4, 'N', 'a', 'm', 'e', 0 };	    Name n = new Name("A.Basic.Name.");	    	    DNSOutput o = new DNSOutput();	    n.toWire(o, null);	    assertTrue(Arrays.equals(raw, o.toByteArray()));	}	public void test_empty_Compression() throws TextParseException	{	    byte[] raw = new byte[] { 1, 'A', 5, 'B', 'a', 's', 'i', 'c', 4, 'N', 'a', 'm', 'e', 0 };	    Name n = new Name("A.Basic.Name.");	    	    Compression c = new Compression();	    DNSOutput o = new DNSOutput();	    n.toWire(o, c);	    assertTrue(Arrays.equals(raw, o.toByteArray()));	    assertEquals(0, c.get(n));	}	public void test_with_exact_Compression() throws TextParseException	{	    Name n = new Name("A.Basic.Name.");	    	    Compression c = new Compression();	    c.add(256, n);	    byte[] exp = new byte[] { (byte)0xC1, 0x0 };	    DNSOutput o = new DNSOutput();	    n.toWire(o, c);	    assertTrue(Arrays.equals(exp, o.toByteArray()));	    assertEquals(256, c.get(n));	}	public void test_with_partial_Compression() throws TextParseException	{	    Name d = new Name("Basic.Name.");	    Name n = new Name("A.Basic.Name.");	    	    Compression c = new Compression();	    c.add(257, d);	    byte[] exp = new byte[] { 1, 'A', (byte)0xC1, 0x1 };	    DNSOutput o = new DNSOutput();	    n.toWire(o, c);	    assertTrue(Arrays.equals(exp, o.toByteArray()));	    assertEquals(257, c.get(d));	    assertEquals(0, c.get(n));	}	public void test_0arg_rel() throws TextParseException	{	    Name n = new Name("A.Relative.Name");	    try {		n.toWire();		fail("IllegalArgumentException not thrown");	    }	    catch(IllegalArgumentException e){}	}	public void test_0arg() throws TextParseException	{	    byte[] raw = new byte[] { 1, 'A', 5, 'B', 'a', 's', 'i', 'c', 4, 'N', 'a', 'm', 'e', 0 };	    Name n = new Name("A.Basic.Name.");	    	    byte[] out = n.toWire();	    assertTrue(Arrays.equals(raw, out));	}	public void test_root()	{	    byte[] out = Name.root.toWire();	    assertTrue(Arrays.equals(new byte[] { 0 }, out));	}	public void test_3arg() throws TextParseException	{	    Name d = new Name("Basic.Name.");	    Name n = new Name("A.Basic.Name.");	    	    Compression c = new Compression();	    c.add(257, d);	    byte[] exp = new byte[] { 1, 'A', (byte)0xC1, 0x1 };	    DNSOutput o = new DNSOutput();	    n.toWire(o, c, false);	    assertTrue(Arrays.equals(exp, o.toByteArray()));	    assertEquals(257, c.get(d));	    assertEquals(0, c.get(n));	}    }    public static class Test_toWireCanonical extends TestCase    {	public void test_basic() throws TextParseException	{	    byte[] raw = new byte[] { 1, 'a', 5, 'b', 'a', 's', 'i', 'c', 4, 'n', 'a', 'm', 'e', 0 };	    Name n = new Name("A.Basic.Name.");	    	    DNSOutput o = new DNSOutput();	    n.toWireCanonical(o);	    assertTrue(Arrays.equals(raw, o.toByteArray()));	}	public void test_0arg() throws TextParseException	{	    byte[] raw = new byte[] { 1, 'a', 5, 'b', 'a', 's', 'i', 'c', 4, 'n', 'a', 'm', 'e', 0 };	    Name n = new Name("A.Basic.Name.");	    	    byte[] out = n.toWireCanonical();	    assertTrue(Arrays.equals(raw, out));	}	public void test_root()	{	    byte[] out = Name.root.toWireCanonical();	    assertTrue(Arrays.equals(new byte[] { 0 }, out));	}	public void test_empty() throws TextParseException	{	    Name n = new Name("@", null);	    byte[] out = n.toWireCanonical();	    assertTrue(Arrays.equals(new byte[0], out));	}	public void test_3arg() throws TextParseException	{	    Name d = new Name("Basic.Name.");	    Name n = new Name("A.Basic.Name.");	    	    Compression c = new Compression();	    c.add(257, d);	    byte[] exp = new byte[] { 1, 'a', 5, 'b', 'a', 's', 'i', 'c', 4, 'n', 'a', 'm', 'e', 0 };	    DNSOutput o = new DNSOutput();	    n.toWire(o, c, true);	    assertTrue(Arrays.equals(exp, o.toByteArray()));	    assertEquals(257, c.get(d));	    assertEquals(-1, c.get(n));	}    }    public static class Test_equals extends TestCase    {	public void test_same() throws TextParseException	{	    Name n = new Name("A.Name.");	    assertTrue(n.equals(n));	}	public void test_null() throws TextParseException	{	    Name n = new Name("A.Name.");	    assertFalse(n.equals(null));	}	public void test_notName() throws TextParseException	{	    Name n = new Name("A.Name.");	    assertFalse(n.equals(new Object()));	}	public void test_abs() throws TextParseException	{	    Name n = new Name("A.Name.");	    Name n2 = new Name("a.name.");	    assertTrue(n.equals(n2));	    assertTrue(n2.equals(n));	}	public void test_rel() throws TextParseException	{	    Name n1 = new Name("A.Relative.Name");	    Name n2 = new Name("a.relative.name");	    assertTrue(n1.equals(n2));	    assertTrue(n2.equals(n1));	}	public void test_mixed() throws TextParseException	{	    Name n1 = new Name("A.Name");	    Name n2 = new Name("a.name.");	    assertFalse(n1.equals(n2));	    assertFalse(n2.equals(n1));	}	public void test_weird() throws TextParseException	{	    Name n1 = new Name("ab.c");	    Name n2 = new Name("abc.");	    assertFalse(n1.equals(n2));	    assertFalse(n2.equals(n1));	}    }    public static class Test_compareTo extends TestCase    {	public void test_notName() throws TextParseException	{	    Name n = new Name("A.Name");	    try {		n.compareTo(new Object());		fail("ClassCastException not thrown");	    }	    catch(ClassCastException e ){}	}	public void test_same() throws TextParseException	{	    Name n = new Name("A.Name");	    assertEquals(0, n.compareTo(n));	}	public void test_equal() throws TextParseException	{	    Name n1 = new Name("A.Name.");	    Name n2 = new Name("a.name.");	    assertEquals(0, n1.compareTo(n2));	    assertEquals(0, n2.compareTo(n1));	}	public void test_close() throws TextParseException	{	    Name n1 = new Name("a.name");	    Name n2 = new Name("a.name.");	    assertTrue(n1.compareTo(n2) > 0);	    assertTrue(n2.compareTo(n1) < 0);	}	public void test_disjoint() throws TextParseException	{	    Name n1 = new Name("b");	    Name n2 = new Name("c");	    	    assertTrue(n1.compareTo(n2) < 0);	    assertTrue(n2.compareTo(n1) > 0);	}	public void test_label_prefix() throws TextParseException	{	    Name n1 = new Name("thisIs.a.");	    Name n2 = new Name("thisIsGreater.a.");	    assertTrue(n1.compareTo(n2) < 0);	    assertTrue(n2.compareTo(n1) > 0);	}	public void test_more_labels() throws TextParseException	{	    Name n1 = new Name("c.b.a.");	    Name n2 = new Name("d.c.b.a.");	    assertTrue(n1.compareTo(n2) < 0);	    assertTrue(n2.compareTo(n1) > 0);	}    }    public static Test suite()    {	TestSuite s = new TestSuite();	s.addTestSuite(Test_String_init.class);	s.addTestSuite(Test_DNSInput_init.class);	s.addTestSuite(NameTest.class);	s.addTestSuite(Test_toWire.class);	s.addTestSuite(Test_toWireCanonical.class);	s.addTestSuite(Test_equals.class);	s.addTestSuite(Test_compareTo.class);	return s;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -