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
;
13 import static org
.junit
.Assert
.*;
17 import junit
.framework
.Assert
;
19 import org
.apache
.log4j
.Logger
;
20 import org
.joda
.time
.DateTime
;
21 import org
.junit
.After
;
22 import org
.junit
.AfterClass
;
23 import org
.junit
.Before
;
24 import org
.junit
.BeforeClass
;
25 import org
.junit
.Test
;
27 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
28 import eu
.etaxonomy
.cdm
.model
.common
.DefaultTermInitializer
;
29 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
30 import eu
.etaxonomy
.cdm
.model
.common
.LanguageString
;
37 public class MediaTest
{
38 @SuppressWarnings("unused")
39 private static final Logger logger
= Logger
.getLogger(MediaTest
.class);
43 private MediaRepresentation mediaRepresentation1
;
44 private MediaRepresentation mediaRepresentation2
;
45 private MediaRepresentationPart mediaRepresentationPart1
;
46 private MediaRepresentationPart mediaRepresentationPart2
;
47 private LanguageString languageString1
;
48 private final String germanDescription
= "media1Desc2";
49 private Rights rights1
;
50 private LanguageString languageString2
;
51 private static URI uriString1
;
52 private static URI uriString2
;
55 * @throws java.lang.Exception
58 public static void setUpBeforeClass() throws Exception
{
59 DefaultTermInitializer termInitializer
= new DefaultTermInitializer();
60 termInitializer
.initialize();
62 uriString1
= new URI("http://Pathtoimage1/");
63 uriString2
= new URI("http://Path_to_image_2/");
64 } catch (Exception e
) {
66 Assert
.fail("Error in URI syntax");
72 * @throws java.lang.Exception
75 public static void tearDownAfterClass() throws Exception
{
79 * @throws java.lang.Exception
82 public void setUp() throws Exception
{
83 media1
= Media
.NewInstance();
84 team1
= Team
.NewInstance();
85 media1
.setArtist(team1
);
86 media1
.setMediaCreated(new DateTime(2002, 1,1,0,0,0,0));
87 languageString1
= LanguageString
.NewInstance("media1Desc", Language
.DEFAULT());
88 media1
.addDescription(languageString1
);
89 media1
.addDescription("media1Desc2", Language
.GERMAN());
90 mediaRepresentation1
= MediaRepresentation
.NewInstance();
91 mediaRepresentation2
= MediaRepresentation
.NewInstance();
92 mediaRepresentation1
.setMimeType("MimeType1");
93 mediaRepresentation2
.setMimeType("MimeType1");
94 mediaRepresentationPart1
= ImageFile
.NewInstance(uriString1
, 100);
95 mediaRepresentationPart2
= ImageFile
.NewInstance(uriString2
, 1000);
96 ((ImageFile
) mediaRepresentationPart1
).setHeight(100);
97 ((ImageFile
) mediaRepresentationPart1
).setWidth(100);
99 ((ImageFile
) mediaRepresentationPart2
).setHeight(100);
100 ((ImageFile
) mediaRepresentationPart2
).setWidth(100);
102 mediaRepresentation1
.addRepresentationPart(mediaRepresentationPart1
);
103 mediaRepresentation2
.addRepresentationPart(mediaRepresentationPart2
);
104 media1
.addRepresentation(mediaRepresentation1
);
105 media1
.addRepresentation(mediaRepresentation2
);
106 rights1
= Rights
.NewInstance();
107 media1
.addRights(rights1
);
109 languageString2
= LanguageString
.NewInstance("media1Title", Language
.DEFAULT());
110 media1
.putTitle(languageString2
);
115 * @throws java.lang.Exception
118 public void tearDown() throws Exception
{
121 //***************** TESTS *********************************/
124 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
127 public void testClone() {
129 Media mediaClone
= (Media
)media1
.clone();
130 Assert
.assertSame("Artist must be the same", team1
, mediaClone
.getArtist());
131 Assert
.assertTrue("Clone must have a default language description", mediaClone
.getAllDescriptions().containsKey(Language
.DEFAULT()));
132 Assert
.assertSame("Description1 must be the same", languageString1
, mediaClone
.getAllDescriptions().get(Language
.DEFAULT()) );
133 Assert
.assertTrue("Clone must have a german description", mediaClone
.getAllDescriptions().containsKey(Language
.GERMAN()));
134 Assert
.assertEquals("German description must equal media1Desc2", germanDescription
, mediaClone
.getAllDescriptions().get(Language
.GERMAN()).getText() );
136 Assert
.assertEquals("Media created year must be 2002", 2002, mediaClone
.getMediaCreated().getYear());
137 Assert
.assertEquals("Number of media representations must be 2", 2, mediaClone
.getRepresentations().size());
138 Assert
.assertNotSame("Only media representation must not be mediaRepresentation1", mediaRepresentation1
, mediaClone
.getRepresentations().iterator().next());
139 Assert
.assertEquals("Only meda representation must have same MimeType as mediaRepresentation1", mediaRepresentation1
.getMimeType(), mediaClone
.getRepresentations().iterator().next().getMimeType());
140 Assert
.assertTrue("Rights must contain rights1", mediaClone
.getRights().contains(rights1
));
142 Assert
.assertTrue("Clone must have a default language title", mediaClone
.getAllTitles().containsKey(Language
.DEFAULT()));
143 Assert
.assertSame("Title must be the same", languageString2
, mediaClone
.getAllTitles().get(Language
.DEFAULT()) );
145 } catch (CloneNotSupportedException e
) {
146 Assert
.fail("Media must be cloneable");
152 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
155 public void testAddRepresentation() {
156 Assert
.assertTrue("Representations must contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
160 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
163 public void testRemoveRepresentation() {
164 Assert
.assertTrue("Representations must contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
165 media1
.removeRepresentation(mediaRepresentation1
);
166 Assert
.assertFalse("Representations must not contain mediaRepresentation1", media1
.getRepresentations().contains(mediaRepresentation1
));
167 Assert
.assertEquals("Number of representations must be 1", 1, media1
.getRepresentations().size());
168 media1
.removeRepresentation(mediaRepresentation2
);
169 Assert
.assertFalse("Representations must not contain mediaRepresentation2", media1
.getRepresentations().contains(mediaRepresentation2
));
170 Assert
.assertEquals("Number of representations must be 0", 0, media1
.getRepresentations().size());
174 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRights(eu.etaxonomy.cdm.model.media.Rights)}.
177 public void testAddRights() {
178 Assert
.assertTrue("Rights must contain rights1", media1
.getRights().contains(rights1
));
182 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRights(eu.etaxonomy.cdm.model.media.Rights)}.
185 public void testRemoveRights() {
186 Assert
.assertTrue("Rights must contain rights1", media1
.getRights().contains(rights1
));
187 media1
.removeRights(rights1
);
188 Assert
.assertFalse("Rights must not contain rights1", media1
.getRights().contains(rights1
));
189 Assert
.assertEquals("Number of rights must be 0", 0, media1
.getRights().size());
193 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addTitle(eu.etaxonomy.cdm.model.common.LanguageString)}.
196 public void testAddTitle() {
197 Assert
.assertSame("Title must be the same", languageString2
, media1
.getAllTitles().get(Language
.DEFAULT()) );
201 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeTitle(eu.etaxonomy.cdm.model.common.Language)}.
204 public void testRemoveTitle() {
205 Assert
.assertSame("Title must be the same", languageString2
, media1
.getAllTitles().get(Language
.DEFAULT()) );
206 media1
.removeTitle(Language
.GERMAN());
207 Assert
.assertEquals("Number of titles must be 1", 1, media1
.getAllTitles().size());
208 media1
.removeTitle(Language
.DEFAULT());
209 Assert
.assertEquals("Number of titles must be 0", 0, media1
.getAllTitles().size());
210 Assert
.assertFalse("Title must not contain languageString2", languageString2
.equals(media1
.getAllTitles().get(Language
.DEFAULT())));
214 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getMediaCreated()}.
217 public void testGetMediaCreated() {
218 Assert
.assertEquals("Media created year must be 2002", 2002, media1
.getMediaCreated().getYear());
223 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getDescription()}.
226 public void testGetDescription() {
227 Assert
.assertTrue("Clone must have a default language description", media1
.getAllDescriptions().containsKey(Language
.DEFAULT()));
228 Assert
.assertSame("Description1 must be the same", languageString1
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
232 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(eu.etaxonomy.cdm.model.common.LanguageString)}.
235 public void testAddDescriptionLanguageString() {
236 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
237 Assert
.assertTrue("Clone must have a default language description", media1
.getAllDescriptions().containsKey(Language
.DEFAULT()));
238 Assert
.assertSame("Description1 must be the same", languageString1
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
239 media1
.addDescription(languageString2
);
240 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
241 Assert
.assertEquals("Default language description must be languageString2", languageString2
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
245 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
248 public void testAddDescriptionStringLanguage() {
249 Assert
.assertTrue("Clone must have a german language description", media1
.getAllDescriptions().containsKey(Language
.GERMAN()));
250 Assert
.assertSame("Description1 must be the same", "media1Desc2", media1
.getAllDescriptions().get(Language
.GERMAN()).getText() );
251 media1
.addDescription("testDesc", Language
.DEFAULT());
252 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
253 media1
.addDescription("testDesc2", Language
.DEFAULT());
254 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
255 Assert
.assertSame("Default language description must be 'testDesc2'", "testDesc2", media1
.getAllDescriptions().get(Language
.DEFAULT()).getText() );
259 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
262 public void testRemoveDescription() {
263 Assert
.assertEquals("Number of descriptions must be 2", 2, media1
.getAllDescriptions().size() );
264 Assert
.assertTrue("Clone must have a default language description", media1
.getAllDescriptions().containsKey(Language
.DEFAULT()));
265 Assert
.assertSame("Description1 must be the same", languageString1
, media1
.getAllDescriptions().get(Language
.DEFAULT()) );
266 media1
.removeDescription(Language
.JAPANESE());
267 Assert
.assertEquals("Number of descriptions must be 2", 2, 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
.DEFAULT());
271 Assert
.assertEquals("Number of descriptions must be 1", 1, media1
.getAllDescriptions().size() );
272 media1
.removeDescription(Language
.GERMAN());
273 Assert
.assertEquals("Number of descriptions must be 0", 0, media1
.getAllDescriptions().size() );