This project has retired. For details please refer to its
Attic page.
ConfiguratorTest xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.client.mapper;
20
21 import static org.junit.Assert.assertEquals;
22 import static org.junit.Assert.assertNotNull;
23 import static org.junit.Assert.assertNull;
24 import static org.junit.Assert.assertTrue;
25
26 import java.util.Properties;
27
28 import org.apache.chemistry.opencmis.client.parser.MetadataParser;
29 import org.apache.chemistry.opencmis.client.parser.MetadataParserExif;
30 import org.apache.chemistry.opencmis.client.parser.MetadataParserTika;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33 import org.junit.After;
34 import org.junit.Before;
35 import org.junit.Test;
36
37 public class ConfiguratorTest {
38
39 private static final Log LOG = LogFactory.getLog(ConfiguratorTest.class.getName());
40 Properties properties;
41
42 @Before
43 public void setUp() throws Exception {
44 properties = new Properties();
45 properties.setProperty(Configurator.PREFIX + "s", "image, audio");
46
47 properties.setProperty(Configurator.PREFIX + ".audio.typeId", "apache:audio");
48 properties.setProperty(Configurator.PREFIX + ".audio", "audio/mp3");
49 properties.setProperty(Configurator.PREFIX + ".audio.class", "TikaPropertyMapper.class");
50 properties.setProperty(Configurator.PREFIX + ".audio.id.artist", "artist");
51 properties.setProperty(Configurator.PREFIX + ".audio.id.album", "album");
52 properties.setProperty(Configurator.PREFIX + ".audio.id.title", "title");
53 properties.setProperty(Configurator.PREFIX + ".audio.mapperClass",
54 "org.apache.chemistry.opencmis.client.mapper.PropertyMapperTika");
55 properties.setProperty(Configurator.PREFIX + ".audio.parserClass",
56 "org.apache.chemistry.opencmis.client.parser.MetadataParserTika");
57
58 properties.setProperty(Configurator.PREFIX + ".image", "image/jpeg");
59 properties.setProperty(Configurator.PREFIX + ".image.typeId", "apache:image");
60 properties.setProperty(Configurator.PREFIX + ".image.id.model", "model");
61 properties.setProperty(Configurator.PREFIX + ".image.id.imageWidth", "width");
62 properties.setProperty(Configurator.PREFIX + ".image.id.imageHeight", "height");
63 properties.setProperty(Configurator.PREFIX + ".image.mapperClass",
64 "org.apache.chemistry.opencmis.client.mapper.PropertyMapperTika");
65 properties.setProperty(Configurator.PREFIX + ".image.parserClass",
66 "org.apache.chemistry.opencmis.client.parser.MetadataParserExif");
67 }
68
69 @After
70 public void tearDown() throws Exception {
71 }
72
73 @Test
74 public void testLoad() {
75 Configurator cfg = new Configurator(properties);
76 assertTrue(cfg.getProperties().size() > 0);
77 }
78
79 @Test
80 public void testGetTypes() {
81 Configurator cfg = new Configurator(properties);
82 String[] types = cfg.getTypeKeys();
83 assertEquals(2, types.length);
84 assertEquals("image", types[0]);
85 assertEquals("audio", types[1]);
86 }
87
88 @Test
89 public void testLoadClass() {
90 Configurator cfg = new Configurator(properties);
91 PropertyMapper mapper = cfg.loadMapperClass("image");
92 assertNotNull(mapper);
93 }
94
95 @Test
96 public void testLoadMaps() {
97 PropertyMapperTika mapper = new PropertyMapperTika();
98 String typeKey = "image";
99 String contentType = "image/jpeg";
100 assertTrue(mapper.initialize(Configurator.PREFIX, typeKey, properties));
101 mapper.buildIdMap(typeKey, properties);
102 assertEquals(3, mapper.getSize());
103 assertEquals(contentType, mapper.getContentTypes()[0]);
104 assertEquals("apache:image", mapper.getMappedTypeId());
105 assertEquals("model", mapper.getMappedPropertyId("model"));
106 assertEquals("width", mapper.getMappedPropertyId("imageWidth"));
107 assertEquals("height", mapper.getMappedPropertyId("imageHeight"));
108
109 mapper = new PropertyMapperTika();
110 typeKey = "audio";
111 contentType = "audio/mp3";
112 assertTrue(mapper.initialize(Configurator.PREFIX, typeKey, properties));
113 mapper.buildIdMap(typeKey, properties);
114 assertEquals(3, mapper.getSize());
115 assertEquals(contentType, mapper.getContentTypes()[0]);
116 assertEquals("apache:audio", mapper.getMappedTypeId());
117 assertEquals("artist", mapper.getMappedPropertyId("artist"));
118 assertEquals("album", mapper.getMappedPropertyId("album"));
119 assertEquals("title", mapper.getMappedPropertyId("title"));
120 }
121
122 @Test
123 public void testBuildMapperMap() {
124 Configurator cfg = new Configurator(properties);
125 cfg.buildMapperMap();
126 cfg.createParsers();
127 PropertyMapper mapper = cfg.getPropertyMapper("image/jpeg");
128 assertNotNull(mapper);
129 assertEquals("model", mapper.getMappedPropertyId("model"));
130 assertEquals("width", mapper.getMappedPropertyId("imageWidth"));
131 assertEquals("height", mapper.getMappedPropertyId("imageHeight"));
132 assertNull(mapper.getMappedPropertyId("artist"));
133
134 mapper = cfg.getPropertyMapper("audio/mp3");
135 assertNotNull(mapper);
136 assertEquals("artist", mapper.getMappedPropertyId("artist"));
137 assertEquals("album", mapper.getMappedPropertyId("album"));
138 assertEquals("title", mapper.getMappedPropertyId("title"));
139 assertNull(mapper.getMappedPropertyId("model"));
140 }
141
142 @Test
143 public void testParserMap() {
144 Configurator cfg = new Configurator(properties);
145 cfg.buildMapperMap();
146 cfg.createParsers();
147 MetadataParser parser = cfg.getParser("image/jpeg");
148 assertNotNull(parser);
149 assertEquals(MetadataParserExif.class, parser.getClass());
150
151 parser = cfg.getParser("audio/mp3");
152 assertNotNull(parser);
153 assertEquals(MetadataParserTika.class, parser.getClass());
154 }
155
156 @Test
157 public void testParseContentTypeConfiguration() {
158 String typeId = "apache:image";
159 properties = new Properties();
160 properties.setProperty(Configurator.PREFIX + "s", "image");
161 properties.setProperty(Configurator.PREFIX + ".image", "image/jpeg");
162 properties.setProperty(Configurator.PREFIX + ".image.typeId", typeId);
163 Configurator cfg = new Configurator(properties);
164 cfg.buildMapperMap();
165 cfg.createParsers();
166 assertNotNull(cfg.getParser("image/jpeg"));
167 assertEquals(typeId, cfg.getParser("image/jpeg").getMappedTypeId());
168 assertNull(cfg.getParser("audio/mp3"));
169 assertNull(cfg.getParser("image/x-something"));
170
171 properties.setProperty(Configurator.PREFIX + ".image", "image/jpeg : image/tiff:image/png");
172 cfg = new Configurator(properties);
173 cfg.buildMapperMap();
174 cfg.createParsers();
175 assertNotNull(cfg.getParser("image/jpeg"));
176 assertNotNull(cfg.getParser("image/tiff"));
177 assertNotNull(cfg.getParser("image/png"));
178 assertEquals(typeId, cfg.getParser("image/jpeg").getMappedTypeId());
179 assertEquals(typeId, cfg.getParser("image/tiff").getMappedTypeId());
180 assertEquals(typeId, cfg.getParser("image/png").getMappedTypeId());
181 assertNull(cfg.getParser("audio/mp3"));
182 assertNull(cfg.getParser("image/x-something"));
183
184 properties.setProperty(Configurator.PREFIX + ".image", "image/*:audio/mpeg:audio/ogg");
185 cfg = new Configurator(properties);
186 cfg.buildMapperMap();
187 cfg.createParsers();
188 assertNotNull(cfg.getParser("image/jpeg"));
189 assertEquals(typeId, cfg.getParser("image/jpeg").getMappedTypeId());
190 assertNotNull(cfg.getParser("image/tiff"));
191 assertEquals(typeId, cfg.getParser("image/tiff").getMappedTypeId());
192 assertNotNull(cfg.getParser("image/png"));
193 assertEquals(typeId, cfg.getParser("image/png").getMappedTypeId());
194 assertNotNull(cfg.getParser("image/x-something"));
195 assertEquals(typeId, cfg.getParser("image/x-something").getMappedTypeId());
196 assertNotNull(cfg.getParser("audio/mpeg"));
197 assertEquals(typeId, cfg.getParser("audio/mpeg").getMappedTypeId());
198 assertNotNull(cfg.getParser("audio/ogg"));
199 assertEquals(typeId, cfg.getParser("audio/ogg").getMappedTypeId());
200 assertNull(cfg.getParser("audio/mp3"));
201 assertNull(cfg.getParser("text/plain"));
202 }
203 }