1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.tika.metadata;
18
19
20 import java.util.Properties;
21
22
23 import junit.framework.Test;
24 import junit.framework.TestCase;
25 import junit.framework.TestSuite;
26 import junit.textui.TestRunner;
27
28
29
30
31 public class TestMetadata extends TestCase {
32
33 private static final String CONTENTTYPE = "contenttype";
34
35 public TestMetadata(String testName) {
36 super(testName);
37 }
38
39 public static Test suite() {
40 return new TestSuite(TestMetadata.class);
41 }
42
43 public static void main(String[] args) {
44 TestRunner.run(suite());
45 }
46
47
48 public void testAdd() {
49 String[] values = null;
50 Metadata meta = new Metadata();
51
52 values = meta.getValues(CONTENTTYPE);
53 assertEquals(0, values.length);
54
55 meta.add(CONTENTTYPE, "value1");
56 values = meta.getValues(CONTENTTYPE);
57 assertEquals(1, values.length);
58 assertEquals("value1", values[0]);
59
60 meta.add(CONTENTTYPE, "value2");
61 values = meta.getValues(CONTENTTYPE);
62 assertEquals(2, values.length);
63 assertEquals("value1", values[0]);
64 assertEquals("value2", values[1]);
65
66
67
68 meta.add(CONTENTTYPE, "value1");
69 values = meta.getValues(CONTENTTYPE);
70 assertEquals(3, values.length);
71 assertEquals("value1", values[0]);
72 assertEquals("value2", values[1]);
73 assertEquals("value1", values[2]);
74 }
75
76
77 public void testSet() {
78 String[] values = null;
79 Metadata meta = new Metadata();
80
81 values = meta.getValues(CONTENTTYPE);
82 assertEquals(0, values.length);
83
84 meta.set(CONTENTTYPE, "value1");
85 values = meta.getValues(CONTENTTYPE);
86 assertEquals(1, values.length);
87 assertEquals("value1", values[0]);
88
89 meta.set(CONTENTTYPE, "value2");
90 values = meta.getValues(CONTENTTYPE);
91 assertEquals(1, values.length);
92 assertEquals("value2", values[0]);
93
94 meta.set(CONTENTTYPE, "new value 1");
95 meta.add("contenttype", "new value 2");
96 values = meta.getValues(CONTENTTYPE);
97 assertEquals(2, values.length);
98 assertEquals("new value 1", values[0]);
99 assertEquals("new value 2", values[1]);
100 }
101
102
103 public void testSetProperties() {
104 String[] values = null;
105 Metadata meta = new Metadata();
106 Properties props = new Properties();
107
108 meta.setAll(props);
109 assertEquals(0, meta.size());
110
111 props.setProperty("name-one", "value1.1");
112 meta.setAll(props);
113 assertEquals(1, meta.size());
114 values = meta.getValues("name-one");
115 assertEquals(1, values.length);
116 assertEquals("value1.1", values[0]);
117
118 props.setProperty("name-two", "value2.1");
119 meta.setAll(props);
120 assertEquals(2, meta.size());
121 values = meta.getValues("name-one");
122 assertEquals(1, values.length);
123 assertEquals("value1.1", values[0]);
124 values = meta.getValues("name-two");
125 assertEquals(1, values.length);
126 assertEquals("value2.1", values[0]);
127 }
128
129
130 public void testGet() {
131 Metadata meta = new Metadata();
132 assertNull(meta.get("a-name"));
133 meta.add("a-name", "value-1");
134 assertEquals("value-1", meta.get("a-name"));
135 meta.add("a-name", "value-2");
136 assertEquals("value-1", meta.get("a-name"));
137 }
138
139
140 public void testIsMultiValued() {
141 Metadata meta = new Metadata();
142 assertFalse(meta.isMultiValued("key"));
143 meta.add("key", "value1");
144 assertFalse(meta.isMultiValued("key"));
145 meta.add("key", "value2");
146 assertTrue(meta.isMultiValued("key"));
147 }
148
149
150 public void testNames() {
151 String[] names = null;
152 Metadata meta = new Metadata();
153 names = meta.names();
154 assertEquals(0, names.length);
155
156 meta.add("name-one", "value");
157 names = meta.names();
158 assertEquals(1, names.length);
159 assertEquals("name-one", names[0]);
160 meta.add("name-two", "value");
161 names = meta.names();
162 assertEquals(2, names.length);
163 }
164
165
166 public void testRemove() {
167 Metadata meta = new Metadata();
168 meta.remove("name-one");
169 assertEquals(0, meta.size());
170 meta.add("name-one", "value-1.1");
171 meta.add("name-one", "value-1.2");
172 meta.add("name-two", "value-2.2");
173 assertEquals(2, meta.size());
174 assertNotNull(meta.get("name-one"));
175 assertNotNull(meta.get("name-two"));
176 meta.remove("name-one");
177 assertEquals(1, meta.size());
178 assertNull(meta.get("name-one"));
179 assertNotNull(meta.get("name-two"));
180 meta.remove("name-two");
181 assertEquals(0, meta.size());
182 assertNull(meta.get("name-one"));
183 assertNull(meta.get("name-two"));
184 }
185
186
187 public void testObject() {
188 Metadata meta1 = new Metadata();
189 Metadata meta2 = new Metadata();
190 assertFalse(meta1.equals(null));
191 assertFalse(meta1.equals("String"));
192 assertTrue(meta1.equals(meta2));
193 meta1.add("name-one", "value-1.1");
194 assertFalse(meta1.equals(meta2));
195 meta2.add("name-one", "value-1.1");
196 assertTrue(meta1.equals(meta2));
197 meta1.add("name-one", "value-1.2");
198 assertFalse(meta1.equals(meta2));
199 meta2.add("name-one", "value-1.2");
200 assertTrue(meta1.equals(meta2));
201 meta1.add("name-two", "value-2.1");
202 assertFalse(meta1.equals(meta2));
203 meta2.add("name-two", "value-2.1");
204 assertTrue(meta1.equals(meta2));
205 meta1.add("name-two", "value-2.2");
206 assertFalse(meta1.equals(meta2));
207 meta2.add("name-two", "value-2.x");
208 assertFalse(meta1.equals(meta2));
209 }
210
211 }