1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.yaml.snakeyaml.nodes;
18
19 import java.net.URI;
20 import java.net.URISyntaxException;
21
22 import junit.framework.TestCase;
23
24 public class TagTest extends TestCase {
25
26 public void testCreate() {
27 try {
28 new Tag((String) null);
29 fail();
30 } catch (Exception e) {
31 assertEquals("Tag must be provided.", e.getMessage());
32 }
33 try {
34 new Tag("");
35 fail();
36 } catch (Exception e) {
37 assertEquals("Tag must not be empty.", e.getMessage());
38 }
39 try {
40 new Tag("!Dice ");
41 fail();
42 } catch (Exception e) {
43 assertEquals("Tag must not contain leading or trailing spaces.", e.getMessage());
44 }
45 Tag tag = new Tag(TagTest.class);
46 assertEquals(Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest", tag.getValue());
47 }
48
49 public void testCreate2() {
50 try {
51 new Tag((Class<?>) null);
52 fail();
53 } catch (Exception e) {
54 assertEquals("Class for tag must be provided.", e.getMessage());
55 }
56 }
57
58 public void testGetClassName() {
59 Tag tag = new Tag(Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest");
60 assertEquals("org.yaml.snakeyaml.nodes.TagTest", tag.getClassName());
61 }
62
63 public void testGetClassNameError() {
64 try {
65 Tag tag = new Tag("!TagTest");
66 tag.getClassName();
67 fail("Class name is only available for global tag");
68 } catch (Exception e) {
69 assertEquals("Invalid tag: !TagTest", e.getMessage());
70 }
71 }
72
73 public void testLength() {
74 String t = Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest";
75 Tag tag = new Tag(t);
76 assertEquals(t.length(), tag.getLength());
77 }
78
79 public void testToString() {
80 Tag tag = new Tag("!car");
81 assertEquals("!car", tag.toString());
82 }
83
84 public void testUri1() {
85 Tag tag = new Tag("!Académico");
86 assertEquals("!Acad%C3%A9mico", tag.toString());
87 }
88
89 public void testUri2() {
90 Tag tag = new Tag("!ruby/object:Test::Module::Sub2");
91 assertEquals("!ruby/object:Test::Module::Sub2", tag.getValue());
92 }
93
94 public void testUri3() throws URISyntaxException {
95 Tag tag = new Tag(new URI("!!java/javabean:foo.Bar"));
96 assertEquals("!!java/javabean:foo.Bar", tag.toString());
97 }
98
99 public void testNullUri() throws URISyntaxException {
100 try {
101 new Tag((URI) null);
102 fail("URI for tag must not be null.");
103 } catch (Exception e) {
104 assertEquals("URI for tag must be provided.", e.getMessage());
105 }
106 }
107
108 public void testCompare() {
109 Tag tag = new Tag("!car");
110 assertEquals(0, tag.compareTo(new Tag("!car")));
111 }
112
113 public void testEqualsObject() {
114 Tag tag = new Tag("!car");
115 assertEquals(tag, tag);
116
117 assertTrue("Temporarily allow compare Tag and String.", tag.equals("!car"));
118 assertFalse("Temporarily allow compare Tag and String.", tag.equals("!foo"));
119 assertEquals(tag, new Tag("!car"));
120 assertFalse(tag.equals(new Tag("!!str")));
121 assertFalse(tag.equals(null));
122 assertFalse(tag.equals(25));
123 }
124 }