Project

General

Profile

Download (12.3 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
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.
9
*/
10

    
11
package eu.etaxonomy.cdm.model.media;
12

    
13
import static org.junit.Assert.*;
14

    
15
import java.net.URI;
16

    
17
import junit.framework.Assert;
18

    
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;
26

    
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;
31

    
32
/**
33
 * @author a.mueller
34
 * @created 05.08.2009
35
 * @version 1.0
36
 */
37
public class MediaTest {
38
	@SuppressWarnings("unused")
39
	private static final Logger logger = Logger.getLogger(MediaTest.class);
40

    
41
	private Media media1; 
42
	private Team team1;
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;
53
	
54
	/**
55
	 * @throws java.lang.Exception
56
	 */
57
	@BeforeClass
58
	public static void setUpBeforeClass() throws Exception {
59
		DefaultTermInitializer termInitializer = new DefaultTermInitializer();
60
		termInitializer.initialize();
61
		try {
62
			uriString1 = new URI("http://Pathtoimage1/");
63
			uriString2 = new URI("http://Path_to_image_2/");
64
		} catch (Exception e) {
65
			e.printStackTrace();
66
			Assert.fail("Error in URI syntax");
67
		}
68
		
69
	}
70

    
71
	/**
72
	 * @throws java.lang.Exception
73
	 */
74
	@AfterClass
75
	public static void tearDownAfterClass() throws Exception {
76
	}
77

    
78
	/**
79
	 * @throws java.lang.Exception
80
	 */
81
	@Before
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);
98
		
99
		((ImageFile) mediaRepresentationPart2).setHeight(100);
100
		((ImageFile) mediaRepresentationPart2).setWidth(100);
101
		
102
		mediaRepresentation1.addRepresentationPart(mediaRepresentationPart1);
103
		mediaRepresentation2.addRepresentationPart(mediaRepresentationPart2);
104
		media1.addRepresentation(mediaRepresentation1);
105
		media1.addRepresentation(mediaRepresentation2);
106
		rights1 = Rights.NewInstance();
107
		media1.addRights(rights1);
108
		
109
		languageString2 = LanguageString.NewInstance("media1Title", Language.DEFAULT());
110
		media1.putTitle(languageString2);
111
		
112
	}
113

    
114
	/**
115
	 * @throws java.lang.Exception
116
	 */
117
	@After
118
	public void tearDown() throws Exception {
119
	}
120

    
121
//***************** TESTS *********************************/	
122
	
123
	/**
124
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
125
	 */
126
	@Test
127
	public void testClone() {
128
		try {
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() );
135
			
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));
141
		
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()) );
144
			
145
		} catch (CloneNotSupportedException e) {
146
			Assert.fail("Media must be cloneable");
147
		}
148
		
149
	}
150

    
151
	/**
152
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
153
	 */
154
	@Test
155
	public void testAddRepresentation() {
156
		Assert.assertTrue("Representations must contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
157
	}
158

    
159
	/**
160
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
161
	 */
162
	@Test
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());
171
	}
172

    
173
	/**
174
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addRights(eu.etaxonomy.cdm.model.media.Rights)}.
175
	 */
176
	@Test
177
	public void testAddRights() {
178
		Assert.assertTrue("Rights must contain rights1", media1.getRights().contains(rights1));
179
	}
180

    
181
	/**
182
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRights(eu.etaxonomy.cdm.model.media.Rights)}.
183
	 */
184
	@Test
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());	
190
	}
191

    
192
	/**
193
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addTitle(eu.etaxonomy.cdm.model.common.LanguageString)}.
194
	 */
195
	@Test
196
	public void testAddTitle() {
197
		Assert.assertSame("Title must be the same", languageString2, media1.getAllTitles().get(Language.DEFAULT()) );
198
	}
199

    
200
	/**
201
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeTitle(eu.etaxonomy.cdm.model.common.Language)}.
202
	 */
203
	@Test
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())));
211
	}
212

    
213
	/**
214
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getMediaCreated()}.
215
	 */
216
	@Test
217
	public void testGetMediaCreated() {
218
		Assert.assertEquals("Media created year must be 2002", 2002, media1.getMediaCreated().getYear());
219
		
220
	}
221

    
222
	/**
223
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getDescription()}.
224
	 */
225
	@Test
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()) );
229
	}
230

    
231
	/**
232
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(eu.etaxonomy.cdm.model.common.LanguageString)}.
233
	 */
234
	@Test
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()) );
242
	}
243

    
244
	/**
245
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
246
	 */
247
	@Test
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() );
256
	}
257

    
258
	/**
259
	 * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
260
	 */
261
	@Test
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() );
274
	}
275
	
276
	@Test
277
	public void testfindBestMatchingRepresentation() {
278
		String[] mimetypes = {".*"};
279
		Assert.assertEquals(mediaRepresentation1, MediaUtils.findBestMatchingRepresentation(media1, 100, 100, 100, mimetypes));
280
		Assert.assertEquals(mediaRepresentation2, MediaUtils.findBestMatchingRepresentation(media1,1000, 100, 100, mimetypes));
281
	
282
	}
283
}
    (1-1/1)