ref #8162 adapt cdmlip to new term package structure
[cdmlib.git] / cdmlib-model / src / test / java / eu / etaxonomy / cdm / model / media / MediaTest.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.model.media;
11
12 import java.net.URI;
13
14 import org.apache.log4j.Logger;
15 import org.junit.After;
16 import org.junit.AfterClass;
17 import org.junit.Assert;
18 import org.junit.Before;
19 import org.junit.BeforeClass;
20 import org.junit.Test;
21
22 import eu.etaxonomy.cdm.model.agent.Team;
23 import eu.etaxonomy.cdm.model.common.Language;
24 import eu.etaxonomy.cdm.model.common.LanguageString;
25 import eu.etaxonomy.cdm.model.common.TimePeriod;
26 import eu.etaxonomy.cdm.model.term.DefaultTermInitializer;
27
28 /**
29 * @author a.mueller
30 * @since 05.08.2009
31 */
32 public class MediaTest {
33 @SuppressWarnings("unused")
34 private static final Logger logger = Logger.getLogger(MediaTest.class);
35
36 private Media media1;
37 private Team team1;
38 private MediaRepresentation mediaRepresentation1;
39 private MediaRepresentation mediaRepresentation2;
40 private MediaRepresentationPart mediaRepresentationPart1;
41 private MediaRepresentationPart mediaRepresentationPart2;
42 private LanguageString languageString1;
43 private final String germanDescription = "media1Desc2";
44 private Rights rights1;
45 private LanguageString languageString2;
46 private static URI uriString1;
47 private static URI uriString2;
48
49 /**
50 * @throws java.lang.Exception
51 */
52 @BeforeClass
53 public static void setUpBeforeClass() throws Exception {
54 DefaultTermInitializer termInitializer = new DefaultTermInitializer();
55 termInitializer.initialize();
56 try {
57 uriString1 = new URI("http://Pathtoimage1/");
58 uriString2 = new URI("http://Path_to_image_2/");
59 } catch (Exception e) {
60 e.printStackTrace();
61 Assert.fail("Error in URI syntax");
62 }
63
64 }
65
66 /**
67 * @throws java.lang.Exception
68 */
69 @AfterClass
70 public static void tearDownAfterClass() throws Exception {
71 }
72
73 /**
74 * @throws java.lang.Exception
75 */
76 @Before
77 public void setUp() throws Exception {
78 media1 = Media.NewInstance();
79 team1 = Team.NewInstance();
80 media1.setArtist(team1);
81 media1.setMediaCreated(TimePeriod.NewInstance(2002));
82 languageString1 = LanguageString.NewInstance("media1Desc", Language.DEFAULT());
83 media1.addDescription(languageString1);
84 media1.putDescription(Language.GERMAN(), "media1Desc2");
85 mediaRepresentation1 = MediaRepresentation.NewInstance();
86 mediaRepresentation2 = MediaRepresentation.NewInstance();
87 mediaRepresentation1.setMimeType("MimeType1");
88 mediaRepresentation2.setMimeType("MimeType1");
89 mediaRepresentationPart1 = ImageFile.NewInstance(uriString1, 100);
90 mediaRepresentationPart2 = ImageFile.NewInstance(uriString2, 1000);
91 ((ImageFile) mediaRepresentationPart1).setHeight(100);
92 ((ImageFile) mediaRepresentationPart1).setWidth(100);
93
94 ((ImageFile) mediaRepresentationPart2).setHeight(100);
95 ((ImageFile) mediaRepresentationPart2).setWidth(100);
96
97 mediaRepresentation1.addRepresentationPart(mediaRepresentationPart1);
98 mediaRepresentation2.addRepresentationPart(mediaRepresentationPart2);
99 media1.addRepresentation(mediaRepresentation1);
100 media1.addRepresentation(mediaRepresentation2);
101 rights1 = Rights.NewInstance();
102 media1.addRights(rights1);
103
104 languageString2 = LanguageString.NewInstance("media1Title", Language.DEFAULT());
105 media1.putTitle(languageString2);
106
107 }
108
109 /**
110 * @throws java.lang.Exception
111 */
112 @After
113 public void tearDown() throws Exception {
114 }
115
116 //***************** TESTS *********************************/
117
118 /**
119 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
120 */
121 @Test
122 public void testClone() {
123 try {
124 Media mediaClone = (Media)media1.clone();
125 Assert.assertSame("Artist must be the same", team1, mediaClone.getArtist());
126 Assert.assertTrue("Clone must have a default language description", mediaClone.getAllDescriptions().containsKey(Language.DEFAULT()));
127 Assert.assertEquals("Description1.text must be the equal", languageString1.getText(), mediaClone.getAllDescriptions().get(Language.DEFAULT()).getText() );
128 Assert.assertSame("Description1.language must be the same", languageString1.getLanguage(), mediaClone.getAllDescriptions().get(Language.DEFAULT()).getLanguage() );
129 Assert.assertTrue("Clone must have a german description", mediaClone.getAllDescriptions().containsKey(Language.GERMAN()));
130 Assert.assertEquals("German description must equal media1Desc2", germanDescription, mediaClone.getAllDescriptions().get(Language.GERMAN()).getText() );
131
132 Assert.assertEquals("Media created year must be 2002", "2002", mediaClone.getMediaCreated().getYear());
133 Assert.assertEquals("Number of media representations must be 2", 2, mediaClone.getRepresentations().size());
134 Assert.assertNotSame("Only media representation must not be mediaRepresentation1", mediaRepresentation1, mediaClone.getRepresentations().iterator().next());
135 Assert.assertEquals("Only meda representation must have same MimeType as mediaRepresentation1", mediaRepresentation1.getMimeType(), mediaClone.getRepresentations().iterator().next().getMimeType());
136
137 // #5762
138 // Assert.assertTrue("Rights must contain rights1", mediaClone.getRights().contains(rights1));
139 Assert.assertTrue("Rights must contain 1 rights object", mediaClone.getRights().size() == 1);
140 Assert.assertTrue("Rights must not be cloned", mediaClone.getRights().iterator().next().equals(rights1));
141
142 Assert.assertTrue("Clone must have a default language title", mediaClone.getAllTitles().containsKey(Language.DEFAULT()));
143 Assert.assertSame("Title.language must be the same", languageString2.getLanguage(), mediaClone.getAllTitles().get(Language.DEFAULT()).getLanguage() );
144 Assert.assertEquals("Title.text must be equal", languageString2.getText(), mediaClone.getAllTitles().get(Language.DEFAULT()).getText() );
145
146 } catch (CloneNotSupportedException e) {
147 Assert.fail("Media must be cloneable");
148 }
149
150 }
151
152 /**
153 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
154 */
155 @Test
156 public void testAddRepresentation() {
157 Assert.assertTrue("Representations must contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
158 }
159
160 /**
161 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
162 */
163 @Test
164 public void testRemoveRepresentation() {
165 Assert.assertTrue("Representations must contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
166 media1.removeRepresentation(mediaRepresentation1);
167 Assert.assertFalse("Representations must not contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
168 Assert.assertEquals("Number of representations must be 1", 1, media1.getRepresentations().size());
169 media1.removeRepresentation(mediaRepresentation2);
170 Assert.assertFalse("Representations must not contain mediaRepresentation2", media1.getRepresentations().contains(mediaRepresentation2));
171 Assert.assertEquals("Number of representations must be 0", 0, media1.getRepresentations().size());
172 }
173
174 /**
175 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRights(eu.etaxonomy.cdm.model.media.Rights)}.
176 */
177 @Test
178 public void testAddRights() {
179 Assert.assertTrue("Rights must contain rights1", media1.getRights().contains(rights1));
180 }
181
182 /**
183 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRights(eu.etaxonomy.cdm.model.media.Rights)}.
184 */
185 @Test
186 public void testRemoveRights() {
187 Assert.assertTrue("Rights must contain rights1", media1.getRights().contains(rights1));
188 media1.removeRights(rights1);
189 Assert.assertFalse("Rights must not contain rights1", media1.getRights().contains(rights1));
190 Assert.assertEquals("Number of rights must be 0", 0, media1.getRights().size());
191 }
192
193 /**
194 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addTitle(eu.etaxonomy.cdm.model.common.LanguageString)}.
195 */
196 @Test
197 public void testAddTitle() {
198 Assert.assertSame("Title must be the same", languageString2, media1.getAllTitles().get(Language.DEFAULT()) );
199 }
200
201 /**
202 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeTitle(eu.etaxonomy.cdm.model.common.Language)}.
203 */
204 @Test
205 public void testRemoveTitle() {
206 Assert.assertSame("Title must be the same", languageString2, media1.getAllTitles().get(Language.DEFAULT()) );
207 media1.removeTitle(Language.GERMAN());
208 Assert.assertEquals("Number of titles must be 1", 1, media1.getAllTitles().size());
209 media1.removeTitle(Language.DEFAULT());
210 Assert.assertEquals("Number of titles must be 0", 0, media1.getAllTitles().size());
211 Assert.assertFalse("Title must not contain languageString2", languageString2.equals(media1.getAllTitles().get(Language.DEFAULT())));
212 }
213
214 /**
215 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getMediaCreated()}.
216 */
217 @Test
218 public void testGetMediaCreated() {
219 Assert.assertEquals("Media created year must be 2002", "2002", media1.getMediaCreated().getYear());
220
221 }
222
223 /**
224 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getDescription()}.
225 */
226 @Test
227 public void testGetDescription() {
228 Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
229 Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
230 }
231
232 /**
233 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(eu.etaxonomy.cdm.model.common.LanguageString)}.
234 */
235 @Test
236 public void testAddDescriptionLanguageString() {
237 Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
238 Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
239 Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
240 media1.addDescription(languageString2);
241 Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
242 Assert.assertEquals("Default language description must be languageString2", languageString2, media1.getAllDescriptions().get(Language.DEFAULT()) );
243 }
244
245 /**
246 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
247 */
248 @Test
249 public void testAddDescriptionStringLanguage() {
250 Assert.assertTrue("Clone must have a german language description", media1.getAllDescriptions().containsKey(Language.GERMAN()));
251 Assert.assertSame("Description1 must be the same", "media1Desc2", media1.getAllDescriptions().get(Language.GERMAN()).getText() );
252 media1.putDescription(Language.DEFAULT(), "testDesc");
253 Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
254 media1.putDescription(Language.DEFAULT(), "testDesc2");
255 Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
256 Assert.assertSame("Default language description must be 'testDesc2'", "testDesc2", media1.getAllDescriptions().get(Language.DEFAULT()).getText() );
257 }
258
259 /**
260 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
261 */
262 @Test
263 public void testRemoveDescription() {
264 Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
265 Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
266 Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
267 media1.removeDescription(Language.JAPANESE());
268 Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
269 media1.removeDescription(Language.DEFAULT());
270 Assert.assertEquals("Number of descriptions must be 1", 1, media1.getAllDescriptions().size() );
271 media1.removeDescription(Language.DEFAULT());
272 Assert.assertEquals("Number of descriptions must be 1", 1, media1.getAllDescriptions().size() );
273 media1.removeDescription(Language.GERMAN());
274 Assert.assertEquals("Number of descriptions must be 0", 0, media1.getAllDescriptions().size() );
275 }
276
277 }