2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.model
.media
;
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
;
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
;
32 public class MediaTest
{
33 @SuppressWarnings("unused")
34 private static final Logger logger
= Logger
.getLogger(MediaTest
.class);
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
;
50 * @throws java.lang.Exception
53 public static void setUpBeforeClass() throws Exception
{
54 DefaultTermInitializer termInitializer
= new DefaultTermInitializer();
55 termInitializer
.initialize();
57 uriString1
= new URI("http://Pathtoimage1/");
58 uriString2
= new URI("http://Path_to_image_2/");
59 } catch (Exception e
) {
61 Assert
.fail("Error in URI syntax");
67 * @throws java.lang.Exception
70 public static void tearDownAfterClass() throws Exception
{
74 * @throws java.lang.Exception
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);
94 ((ImageFile
) mediaRepresentationPart2
).setHeight(100);
95 ((ImageFile
) mediaRepresentationPart2
).setWidth(100);
97 mediaRepresentation1
.addRepresentationPart(mediaRepresentationPart1
);
98 mediaRepresentation2
.addRepresentationPart(mediaRepresentationPart2
);
99 media1
.addRepresentation(mediaRepresentation1
);
100 media1
.addRepresentation(mediaRepresentation2
);
101 rights1
= Rights
.NewInstance();
102 media1
.addRights(rights1
);
104 languageString2
= LanguageString
.NewInstance("media1Title", Language
.DEFAULT());
105 media1
.putTitle(languageString2
);
110 * @throws java.lang.Exception
113 public void tearDown() throws Exception
{
116 //***************** TESTS *********************************/
119 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
122 public void testClone() {
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() );
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());
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
));
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() );
146 } catch (CloneNotSupportedException e
) {
147 Assert
.fail("Media must be cloneable");
153 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
156 public void testAddRepresentation() {
157 Assert
.assertTrue("Representations must contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
161 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
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());
175 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRights(eu.etaxonomy.cdm.model.media.Rights)}.
178 public void testAddRights() {
179 Assert
.assertTrue("Rights must contain rights1", media1
.getRights().contains(rights1
));
183 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRights(eu.etaxonomy.cdm.model.media.Rights)}.
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());
194 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addTitle(eu.etaxonomy.cdm.model.common.LanguageString)}.
197 public void testAddTitle() {
198 Assert
.assertSame("Title must be the same", languageString2
, media1
.getAllTitles().get(Language
.DEFAULT()) );
202 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeTitle(eu.etaxonomy.cdm.model.common.Language)}.
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())));
215 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getMediaCreated()}.
218 public void testGetMediaCreated() {
219 Assert
.assertEquals("Media created year must be 2002", "2002", media1
.getMediaCreated().getYear());
224 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getDescription()}.
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()) );
233 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(eu.etaxonomy.cdm.model.common.LanguageString)}.
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()) );
246 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
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() );
260 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
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() );