Project

General

Profile

Download (13.1 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 java.net.URI;
13

    
14
import org.apache.log4j.Logger;
15
import org.joda.time.DateTime;
16
import org.junit.After;
17
import org.junit.AfterClass;
18
import org.junit.Assert;
19
import org.junit.Before;
20
import org.junit.BeforeClass;
21
import org.junit.Test;
22

    
23
import eu.etaxonomy.cdm.model.agent.Team;
24
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
25
import eu.etaxonomy.cdm.model.common.Language;
26
import eu.etaxonomy.cdm.model.common.LanguageString;
27

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

    
36
    private Media media1;
37
    private Team team1;
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;
48

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

    
64
    }
65

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

    
73
    /**
74
     * @throws java.lang.Exception
75
     */
76
    @Before
77
    public void setUp() throws Exception {
78
        media1 = Media.NewInstance();
79
        team1 = Team.NewInstance();
80
        media1.setArtist(team1);
81
        media1.setMediaCreated(new DateTime(2002, 1,1,0,0,0,0));
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);
93

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

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

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

    
107
    }
108

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

    
116
//***************** TESTS *********************************/
117

    
118
    /**
119
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#clone()}.
120
     */
121
    @Test
122
    public void testClone() {
123
        try {
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() );
131

    
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());
136

    
137
//            #5762
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));
141

    
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() );
145

    
146
        } catch (CloneNotSupportedException e) {
147
            Assert.fail("Media must be cloneable");
148
        }
149

    
150
    }
151

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

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

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

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

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

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

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

    
221
    }
222

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

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

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

    
259
    /**
260
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
261
     */
262
    @Test
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() );
275
    }
276

    
277
}
(1-1/2)