3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.cdm
.model
.media
;
15 import org
.junit
.Assert
;
17 import org
.apache
.log4j
.Logger
;
18 import org
.joda
.time
.DateTime
;
19 import org
.junit
.After
;
20 import org
.junit
.AfterClass
;
21 import org
.junit
.Before
;
22 import org
.junit
.BeforeClass
;
23 import org
.junit
.Test
;
25 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
26 import eu
.etaxonomy
.cdm
.model
.common
.DefaultTermInitializer
;
27 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
28 import eu
.etaxonomy
.cdm
.model
.common
.LanguageString
;
35 public class MediaTest
{
36 @SuppressWarnings("unused")
37 private static final Logger logger
= Logger
.getLogger(MediaTest
.class);
41 private MediaRepresentation mediaRepresentation1
;
42 private MediaRepresentation mediaRepresentation2
;
43 private MediaRepresentationPart mediaRepresentationPart1
;
44 private MediaRepresentationPart mediaRepresentationPart2
;
45 private LanguageString languageString1
;
46 private final String germanDescription
= "media1Desc2";
47 private Rights rights1
;
48 private LanguageString languageString2
;
49 private static URI uriString1
;
50 private static URI uriString2
;
53 * @throws java.lang.Exception
56 public static void setUpBeforeClass() throws Exception
{
57 DefaultTermInitializer termInitializer
= new DefaultTermInitializer();
58 termInitializer
.initialize();
60 uriString1
= new URI("http://Pathtoimage1/");
61 uriString2
= new URI("http://Path_to_image_2/");
62 } catch (Exception e
) {
64 Assert
.fail("Error in URI syntax");
70 * @throws java.lang.Exception
73 public static void tearDownAfterClass() throws Exception
{
77 * @throws java.lang.Exception
80 public void setUp() throws Exception
{
81 media1
= Media
.NewInstance();
82 team1
= Team
.NewInstance();
83 media1
.setArtist(team1
);
84 media1
.setMediaCreated(new DateTime(2002, 1,1,0,0,0,0));
85 languageString1
= LanguageString
.NewInstance("media1Desc", Language
.DEFAULT());
86 media1
.addDescription(languageString1
);
87 media1
.addDescription("media1Desc2", Language
.GERMAN());
88 mediaRepresentation1
= MediaRepresentation
.NewInstance();
89 mediaRepresentation2
= MediaRepresentation
.NewInstance();
90 mediaRepresentation1
.setMimeType("MimeType1");
91 mediaRepresentation2
.setMimeType("MimeType1");
92 mediaRepresentationPart1
= ImageFile
.NewInstance(uriString1
, 100);
93 mediaRepresentationPart2
= ImageFile
.NewInstance(uriString2
, 1000);
94 ((ImageFile
) mediaRepresentationPart1
).setHeight(100);
95 ((ImageFile
) mediaRepresentationPart1
).setWidth(100);
97 ((ImageFile
) mediaRepresentationPart2
).setHeight(100);
98 ((ImageFile
) mediaRepresentationPart2
).setWidth(100);
100 mediaRepresentation1
.addRepresentationPart(mediaRepresentationPart1
);
101 mediaRepresentation2
.addRepresentationPart(mediaRepresentationPart2
);
102 media1
.addRepresentation(mediaRepresentation1
);
103 media1
.addRepresentation(mediaRepresentation2
);
104 rights1
= Rights
.NewInstance();
105 media1
.addRights(rights1
);
107 languageString2
= LanguageString
.NewInstance("media1Title", Language
.DEFAULT());
108 media1
.putTitle(languageString2
);
113 * @throws java.lang.Exception
116 public void tearDown() throws Exception
{
119 //***************** TESTS *********************************/
122 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
125 public void testClone() {
127 Media mediaClone
= (Media
)media1
.clone();
128 Assert
.assertSame("Artist must be the same", team1
, mediaClone
.getArtist());
129 Assert
.assertTrue("Clone must have a default language description", mediaClone
.getAllDescriptions().containsKey(Language
.DEFAULT()));
130 Assert
.assertSame("Description1 must be the same", languageString1
, mediaClone
.getAllDescriptions().get(Language
.DEFAULT()) );
131 Assert
.assertTrue("Clone must have a german description", mediaClone
.getAllDescriptions().containsKey(Language
.GERMAN()));
132 Assert
.assertEquals("German description must equal media1Desc2", germanDescription
, mediaClone
.getAllDescriptions().get(Language
.GERMAN()).getText() );
134 Assert
.assertEquals("Media created year must be 2002", 2002, mediaClone
.getMediaCreated().getYear());
135 Assert
.assertEquals("Number of media representations must be 2", 2, mediaClone
.getRepresentations().size());
136 Assert
.assertNotSame("Only media representation must not be mediaRepresentation1", mediaRepresentation1
, mediaClone
.getRepresentations().iterator().next());
137 Assert
.assertEquals("Only meda representation must have same MimeType as mediaRepresentation1", mediaRepresentation1
.getMimeType(), mediaClone
.getRepresentations().iterator().next().getMimeType());
138 Assert
.assertTrue("Rights must contain rights1", mediaClone
.getRights().contains(rights1
));
140 Assert
.assertTrue("Clone must have a default language title", mediaClone
.getAllTitles().containsKey(Language
.DEFAULT()));
141 Assert
.assertSame("Title must be the same", languageString2
, mediaClone
.getAllTitles().get(Language
.DEFAULT()) );
143 } catch (CloneNotSupportedException e
) {
144 Assert
.fail("Media must be cloneable");
150 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
153 public void testAddRepresentation() {
154 Assert
.assertTrue("Representations must contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
158 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
161 public void testRemoveRepresentation() {
162 Assert
.assertTrue("Representations must contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
163 media1
.removeRepresentation(mediaRepresentation1
);
164 Assert
.assertFalse("Representations must not contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
165 Assert
.assertEquals("Number of representations must be 1", 1, media1
.getRepresentations().size());
166 media1
.removeRepresentation(mediaRepresentation2
);
167 Assert
.assertFalse("Representations must not contain mediaRepresentation2", media1
.getRepresentations().contains(mediaRepresentation2
));
168 Assert
.assertEquals("Number of representations must be 0", 0, media1
.getRepresentations().size());
172 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRights(eu.etaxonomy.cdm.model.media.Rights)}.
175 public void testAddRights() {
176 Assert
.assertTrue("Rights must contain rights1", media1
.getRights().contains(rights1
));
180 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRights(eu.etaxonomy.cdm.model.media.Rights)}.
183 public void testRemoveRights() {
184 Assert
.assertTrue("Rights must contain rights1", media1
.getRights().contains(rights1
));
185 media1
.removeRights(rights1
);
186 Assert
.assertFalse("Rights must not contain rights1", media1
.getRights().contains(rights1
));
187 Assert
.assertEquals("Number of rights must be 0", 0, media1
.getRights().size());
191 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addTitle(eu.etaxonomy.cdm.model.common.LanguageString)}.
194 public void testAddTitle() {
195 Assert
.assertSame("Title must be the same", languageString2
, media1
.getAllTitles().get(Language
.DEFAULT()) );
199 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeTitle(eu.etaxonomy.cdm.model.common.Language)}.
202 public void testRemoveTitle() {
203 Assert
.assertSame("Title must be the same", languageString2
, media1
.getAllTitles().get(Language
.DEFAULT()) );
204 media1
.removeTitle(Language
.GERMAN());
205 Assert
.assertEquals("Number of titles must be 1", 1, media1
.getAllTitles().size());
206 media1
.removeTitle(Language
.DEFAULT());
207 Assert
.assertEquals("Number of titles must be 0", 0, media1
.getAllTitles().size());
208 Assert
.assertFalse("Title must not contain languageString2", languageString2
.equals(media1
.getAllTitles().get(Language
.DEFAULT())));
212 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getMediaCreated()}.
215 public void testGetMediaCreated() {
216 Assert
.assertEquals("Media created year must be 2002", 2002, media1
.getMediaCreated().getYear());
221 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getDescription()}.
224 public void testGetDescription() {
225 Assert
.assertTrue("Clone must have a default language description", media1
.getAllDescriptions().containsKey(Language
.DEFAULT()));
226 Assert
.assertSame("Description1 must be the same", languageString1
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
230 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(eu.etaxonomy.cdm.model.common.LanguageString)}.
233 public void testAddDescriptionLanguageString() {
234 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
235 Assert
.assertTrue("Clone must have a default language description", media1
.getAllDescriptions().containsKey(Language
.DEFAULT()));
236 Assert
.assertSame("Description1 must be the same", languageString1
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
237 media1
.addDescription(languageString2
);
238 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
239 Assert
.assertEquals("Default language description must be languageString2", languageString2
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
243 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
246 public void testAddDescriptionStringLanguage() {
247 Assert
.assertTrue("Clone must have a german language description", media1
.getAllDescriptions().containsKey(Language
.GERMAN()));
248 Assert
.assertSame("Description1 must be the same", "media1Desc2", media1
.getAllDescriptions().get(Language
.GERMAN()).getText() );
249 media1
.addDescription("testDesc", Language
.DEFAULT());
250 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
251 media1
.addDescription("testDesc2", Language
.DEFAULT());
252 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
253 Assert
.assertSame("Default language description must be 'testDesc2'", "testDesc2", media1
.getAllDescriptions().get(Language
.DEFAULT()).getText() );
257 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
260 public void testRemoveDescription() {
261 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
262 Assert
.assertTrue("Clone must have a default language description", media1
.getAllDescriptions().containsKey(Language
.DEFAULT()));
263 Assert
.assertSame("Description1 must be the same", languageString1
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
264 media1
.removeDescription(Language
.JAPANESE());
265 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
266 media1
.removeDescription(Language
.DEFAULT());
267 Assert
.assertEquals("Number of descriptions must be 1", 1, media1
.getAllDescriptions().size() );
268 media1
.removeDescription(Language
.DEFAULT());
269 Assert
.assertEquals("Number of descriptions must be 1", 1, media1
.getAllDescriptions().size() );
270 media1
.removeDescription(Language
.GERMAN());
271 Assert
.assertEquals("Number of descriptions must be 0", 0, media1
.getAllDescriptions().size() );