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 java.net.URI;
13
import java.time.ZoneId;
14
import java.time.ZonedDateTime;
15

    
16
import org.apache.log4j.Logger;
17
import org.junit.After;
18
import org.junit.AfterClass;
19
import org.junit.Assert;
20
import org.junit.Before;
21
import org.junit.BeforeClass;
22
import org.junit.Test;
23

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

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

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

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

    
65
    }
66

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

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

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

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

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

    
108
    }
109

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

    
117
//***************** TESTS *********************************/
118

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

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

    
138
//            #5762
139
//            Assert.assertTrue("Rights must contain rights1", mediaClone.getRights().contains(rights1));
140
            Assert.assertTrue("Rights must contain 1 rights object", mediaClone.getRights().size() == 1);
141
            Assert.assertFalse("Rights must be coloned", mediaClone.getRights().iterator().next().equals(rights1));
142

    
143
            Assert.assertTrue("Clone must have a default language title", mediaClone.getAllTitles().containsKey(Language.DEFAULT()));
144
            Assert.assertSame("Title.language must be the same", languageString2.getLanguage(), mediaClone.getAllTitles().get(Language.DEFAULT()).getLanguage() );
145
            Assert.assertEquals("Title.text must be equal", languageString2.getText(), mediaClone.getAllTitles().get(Language.DEFAULT()).getText() );
146

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

    
151
    }
152

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

    
161
    /**
162
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRepresentation(eu.etaxonomy.cdm.model.media.MediaRepresentation)}.
163
     */
164
    @Test
165
    public void testRemoveRepresentation() {
166
        Assert.assertTrue("Representations must contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
167
        media1.removeRepresentation(mediaRepresentation1);
168
        Assert.assertFalse("Representations must not contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
169
        Assert.assertEquals("Number of representations must be 1", 1, media1.getRepresentations().size());
170
        media1.removeRepresentation(mediaRepresentation2);
171
        Assert.assertFalse("Representations must not contain mediaRepresentation2", media1.getRepresentations().contains(mediaRepresentation2));
172
        Assert.assertEquals("Number of representations must be 0", 0, media1.getRepresentations().size());
173
    }
174

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

    
183
    /**
184
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeRights(eu.etaxonomy.cdm.model.media.Rights)}.
185
     */
186
    @Test
187
    public void testRemoveRights() {
188
        Assert.assertTrue("Rights must contain rights1", media1.getRights().contains(rights1));
189
        media1.removeRights(rights1);
190
        Assert.assertFalse("Rights must not contain rights1", media1.getRights().contains(rights1));
191
        Assert.assertEquals("Number of rights must be 0", 0, media1.getRights().size());
192
    }
193

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

    
202
    /**
203
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeTitle(eu.etaxonomy.cdm.model.common.Language)}.
204
     */
205
    @Test
206
    public void testRemoveTitle() {
207
        Assert.assertSame("Title must be the same", languageString2, media1.getAllTitles().get(Language.DEFAULT()) );
208
        media1.removeTitle(Language.GERMAN());
209
        Assert.assertEquals("Number of titles must be 1", 1, media1.getAllTitles().size());
210
        media1.removeTitle(Language.DEFAULT());
211
        Assert.assertEquals("Number of titles must be 0", 0, media1.getAllTitles().size());
212
        Assert.assertFalse("Title must not contain languageString2", languageString2.equals(media1.getAllTitles().get(Language.DEFAULT())));
213
    }
214

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

    
222
    }
223

    
224
    /**
225
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#getDescription()}.
226
     */
227
    @Test
228
    public void testGetDescription() {
229
        Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
230
        Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
231
    }
232

    
233
    /**
234
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(eu.etaxonomy.cdm.model.common.LanguageString)}.
235
     */
236
    @Test
237
    public void testAddDescriptionLanguageString() {
238
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
239
        Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
240
        Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
241
        media1.addDescription(languageString2);
242
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
243
        Assert.assertEquals("Default language description must be languageString2", languageString2, media1.getAllDescriptions().get(Language.DEFAULT()) );
244
    }
245

    
246
    /**
247
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#addDescription(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
248
     */
249
    @Test
250
    public void testAddDescriptionStringLanguage() {
251
        Assert.assertTrue("Clone must have a german language description", media1.getAllDescriptions().containsKey(Language.GERMAN()));
252
        Assert.assertSame("Description1 must be the same", "media1Desc2", media1.getAllDescriptions().get(Language.GERMAN()).getText() );
253
        media1.putDescription(Language.DEFAULT(), "testDesc");
254
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
255
        media1.putDescription(Language.DEFAULT(), "testDesc2");
256
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
257
        Assert.assertSame("Default language description must be 'testDesc2'", "testDesc2", media1.getAllDescriptions().get(Language.DEFAULT()).getText() );
258
    }
259

    
260
    /**
261
     * Test method for {@link eu.etaxonomy.cdm.model.media.Media#removeDescription(eu.etaxonomy.cdm.model.common.Language)}.
262
     */
263
    @Test
264
    public void testRemoveDescription() {
265
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
266
        Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
267
        Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
268
        media1.removeDescription(Language.JAPANESE());
269
        Assert.assertEquals("Number of descriptions must be 2", 2, 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.DEFAULT());
273
        Assert.assertEquals("Number of descriptions must be 1", 1, media1.getAllDescriptions().size() );
274
        media1.removeDescription(Language.GERMAN());
275
        Assert.assertEquals("Number of descriptions must be 0", 0, media1.getAllDescriptions().size() );
276
    }
277

    
278
}
(1-1/2)