Project

General

Profile

Download (13.2 KB) Statistics
| Branch: | Tag: | Revision:
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 org.apache.log4j.Logger;
13
import org.junit.After;
14
import org.junit.AfterClass;
15
import org.junit.Assert;
16
import org.junit.Before;
17
import org.junit.BeforeClass;
18
import org.junit.Test;
19

    
20
import eu.etaxonomy.cdm.common.URI;
21
import eu.etaxonomy.cdm.model.agent.Team;
22
import eu.etaxonomy.cdm.model.common.Language;
23
import eu.etaxonomy.cdm.model.common.LanguageString;
24
import eu.etaxonomy.cdm.model.common.TimePeriod;
25
import eu.etaxonomy.cdm.model.term.DefaultTermInitializer;
26

    
27
/**
28
 * @author a.mueller
29
 * @since 05.08.2009
30
 */
31
public class MediaTest {
32
    @SuppressWarnings("unused")
33
    private static final Logger logger = Logger.getLogger(MediaTest.class);
34

    
35
    private Media media1;
36
    private Team team1;
37
    private MediaRepresentation mediaRepresentation1;
38
    private MediaRepresentation mediaRepresentation2;
39
    private MediaRepresentationPart mediaRepresentationPart1;
40
    private MediaRepresentationPart mediaRepresentationPart2;
41
    private LanguageString languageString1;
42
    private final String germanDescription = "media1Desc2";
43
    private Rights rights1;
44
    private LanguageString languageString2;
45
    private static URI uriString1;
46
    private static URI uriString2;
47

    
48
    /**
49
     * @throws java.lang.Exception
50
     */
51
    @BeforeClass
52
    public static void setUpBeforeClass() throws Exception {
53
        DefaultTermInitializer termInitializer = new DefaultTermInitializer();
54
        termInitializer.initialize();
55
        try {
56
            uriString1 = new URI("http://Pathtoimage1/");
57
            uriString2 = new URI("http://Path_to_image_2/");
58
        } catch (Exception e) {
59
            e.printStackTrace();
60
            Assert.fail("Error in URI syntax");
61
        }
62

    
63
    }
64

    
65
    /**
66
     * @throws java.lang.Exception
67
     */
68
    @AfterClass
69
    public static void tearDownAfterClass() throws Exception {
70
    }
71

    
72
    /**
73
     * @throws java.lang.Exception
74
     */
75
    @Before
76
    public void setUp() throws Exception {
77
        media1 = Media.NewInstance();
78
        team1 = Team.NewInstance();
79
        media1.setArtist(team1);
80
        media1.setMediaCreated(TimePeriod.NewInstance(2002));
81
        languageString1 = LanguageString.NewInstance("media1Desc", Language.DEFAULT());
82
        media1.addDescription(languageString1);
83
        media1.putDescription(Language.GERMAN(), "media1Desc2");
84
        mediaRepresentation1 = MediaRepresentation.NewInstance();
85
        mediaRepresentation2 = MediaRepresentation.NewInstance();
86
        mediaRepresentation1.setMimeType("MimeType1");
87
        mediaRepresentation2.setMimeType("MimeType1");
88
        mediaRepresentationPart1 = ImageFile.NewInstance(uriString1, 100);
89
        mediaRepresentationPart2 = ImageFile.NewInstance(uriString2, 1000);
90
        ((ImageFile) mediaRepresentationPart1).setHeight(100);
91
        ((ImageFile) mediaRepresentationPart1).setWidth(100);
92

    
93
        ((ImageFile) mediaRepresentationPart2).setHeight(100);
94
        ((ImageFile) mediaRepresentationPart2).setWidth(100);
95

    
96
        mediaRepresentation1.addRepresentationPart(mediaRepresentationPart1);
97
        mediaRepresentation2.addRepresentationPart(mediaRepresentationPart2);
98
        media1.addRepresentation(mediaRepresentation1);
99
        media1.addRepresentation(mediaRepresentation2);
100
        rights1 = Rights.NewInstance();
101
        media1.addRights(rights1);
102

    
103
        languageString2 = LanguageString.NewInstance("media1Title", Language.DEFAULT());
104
        media1.putTitle(languageString2);
105

    
106
    }
107

    
108
    /**
109
     * @throws java.lang.Exception
110
     */
111
    @After
112
    public void tearDown() throws Exception {
113
    }
114

    
115
//***************** TESTS *********************************/
116

    
117
    /**
118
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
119
     */
120
    @Test
121
    public void testClone() {
122
        try {
123
            Media mediaClone = media1.clone();
124
            Assert.assertSame("Artist must be the same", team1, mediaClone.getArtist());
125
            Assert.assertTrue("Clone must have a default language description", mediaClone.getAllDescriptions().containsKey(Language.DEFAULT()));
126
            Assert.assertEquals("Description1.text must be the equal", languageString1.getText(), mediaClone.getAllDescriptions().get(Language.DEFAULT()).getText() );
127
            Assert.assertSame("Description1.language must be the same", languageString1.getLanguage(), mediaClone.getAllDescriptions().get(Language.DEFAULT()).getLanguage() );
128
            Assert.assertTrue("Clone must have a german description", mediaClone.getAllDescriptions().containsKey(Language.GERMAN()));
129
            Assert.assertEquals("German description must equal media1Desc2", germanDescription, mediaClone.getAllDescriptions().get(Language.GERMAN()).getText() );
130

    
131
            Assert.assertEquals("Media created year must be 2002", "2002", mediaClone.getMediaCreated().getYear());
132
            Assert.assertEquals("Number of media representations must be 2", 2, mediaClone.getRepresentations().size());
133
            Assert.assertNotSame("Only media representation must not be mediaRepresentation1", mediaRepresentation1, mediaClone.getRepresentations().iterator().next());
134
            Assert.assertEquals("Only meda representation must have same MimeType as mediaRepresentation1", mediaRepresentation1.getMimeType(), mediaClone.getRepresentations().iterator().next().getMimeType());
135

    
136
//            #5762
137
//            Assert.assertTrue("Rights must contain rights1", mediaClone.getRights().contains(rights1));
138
            Assert.assertTrue("Rights must contain 1 rights object", mediaClone.getRights().size() == 1);
139
            Assert.assertTrue("Rights must not be cloned", mediaClone.getRights().iterator().next().equals(rights1));
140

    
141
            Assert.assertTrue("Clone must have a default language title", mediaClone.getAllTitles().containsKey(Language.DEFAULT()));
142
            Assert.assertSame("Title.language must be the same", languageString2.getLanguage(), mediaClone.getAllTitles().get(Language.DEFAULT()).getLanguage() );
143
            Assert.assertEquals("Title.text must be equal", languageString2.getText(), mediaClone.getAllTitles().get(Language.DEFAULT()).getText() );
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.putDescription(Language.DEFAULT(), "testDesc");
252
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
253
        media1.putDescription(Language.DEFAULT(), "testDesc2");
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
}
(1-1/2)