Project

General

Profile

Download (11.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
package eu.etaxonomy.cdm.model.media;
10

    
11
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
12
import org.junit.Assert;
13
import org.junit.Before;
14
import org.junit.Test;
15

    
16
import eu.etaxonomy.cdm.common.URI;
17
import eu.etaxonomy.cdm.model.agent.Team;
18
import eu.etaxonomy.cdm.model.common.Language;
19
import eu.etaxonomy.cdm.model.common.LanguageString;
20
import eu.etaxonomy.cdm.model.common.TimePeriod;
21
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
22

    
23
/**
24
 * @author a.mueller
25
 * @since 05.08.2009
26
 */
27
public class MediaTest extends EntityTestBase {
28

    
29
    @SuppressWarnings("unused")
30
    private static final Logger logger = LogManager.getLogger(MediaTest.class);
31

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

    
45
    {
46
        try {
47
            uriString1 = new URI("http://Pathtoimage1/");
48
            uriString2 = new URI("http://Path_to_image_2/");
49
        } catch (Exception e) {
50
            e.printStackTrace();
51
            Assert.fail("Error in URI syntax");
52
        }
53
    }
54

    
55
    @Before
56
    public void setUp() throws Exception {
57
        media1 = Media.NewInstance();
58
        team1 = Team.NewInstance();
59
        media1.setArtist(team1);
60
        media1.setMediaCreated(TimePeriod.NewInstance(2002));
61
        languageString1 = LanguageString.NewInstance("media1Desc", Language.DEFAULT());
62
        media1.putDescription(languageString1);
63
        media1.putDescription(Language.GERMAN(), "media1Desc2");
64
        mediaRepresentation1 = MediaRepresentation.NewInstance();
65
        mediaRepresentation2 = MediaRepresentation.NewInstance();
66
        mediaRepresentation1.setMimeType("MimeType1");
67
        mediaRepresentation2.setMimeType("MimeType1");
68
        mediaRepresentationPart1 = ImageFile.NewInstance(uriString1, 100);
69
        mediaRepresentationPart2 = ImageFile.NewInstance(uriString2, 1000);
70
        ((ImageFile) mediaRepresentationPart1).setHeight(100);
71
        ((ImageFile) mediaRepresentationPart1).setWidth(100);
72

    
73
        ((ImageFile) mediaRepresentationPart2).setHeight(100);
74
        ((ImageFile) mediaRepresentationPart2).setWidth(100);
75

    
76
        mediaRepresentation1.addRepresentationPart(mediaRepresentationPart1);
77
        mediaRepresentation2.addRepresentationPart(mediaRepresentationPart2);
78
        media1.addRepresentation(mediaRepresentation1);
79
        media1.addRepresentation(mediaRepresentation2);
80
        rights1 = Rights.NewInstance();
81
        media1.addRights(rights1);
82

    
83
        languageString2 = LanguageString.NewInstance("media1Title", Language.DEFAULT());
84
        media1.putTitle(languageString2);
85

    
86
    }
87

    
88
//***************** TESTS *********************************/
89

    
90
    @Test
91
    public void testClone() {
92
        try {
93
            Media mediaClone = media1.clone();
94
            Assert.assertSame("Artist must be the same", team1, mediaClone.getArtist());
95
            Assert.assertTrue("Clone must have a default language description", mediaClone.getAllDescriptions().containsKey(Language.DEFAULT()));
96
            Assert.assertEquals("Description1.text must be the equal", languageString1.getText(), mediaClone.getAllDescriptions().get(Language.DEFAULT()).getText() );
97
            Assert.assertSame("Description1.language must be the same", languageString1.getLanguage(), mediaClone.getAllDescriptions().get(Language.DEFAULT()).getLanguage() );
98
            Assert.assertTrue("Clone must have a german description", mediaClone.getAllDescriptions().containsKey(Language.GERMAN()));
99
            Assert.assertEquals("German description must equal media1Desc2", germanDescription, mediaClone.getAllDescriptions().get(Language.GERMAN()).getText() );
100

    
101
            Assert.assertEquals("Media created year must be 2002", "2002", mediaClone.getMediaCreated().getYear());
102
            Assert.assertEquals("Number of media representations must be 2", 2, mediaClone.getRepresentations().size());
103
            Assert.assertNotSame("Only media representation must not be mediaRepresentation1", mediaRepresentation1, mediaClone.getRepresentations().iterator().next());
104
            Assert.assertEquals("Only meda representation must have same MimeType as mediaRepresentation1", mediaRepresentation1.getMimeType(), mediaClone.getRepresentations().iterator().next().getMimeType());
105

    
106
//            #5762
107
//            Assert.assertTrue("Rights must contain rights1", mediaClone.getRights().contains(rights1));
108
            Assert.assertTrue("Rights must contain 1 rights object", mediaClone.getRights().size() == 1);
109
            Assert.assertTrue("Rights must not be cloned", mediaClone.getRights().iterator().next().equals(rights1));
110

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

    
115
        } catch (CloneNotSupportedException e) {
116
            Assert.fail("Media must be cloneable");
117
        }
118

    
119
    }
120

    
121
    @Test
122
    public void testAddRepresentation() {
123
        Assert.assertTrue("Representations must contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
124
    }
125

    
126
    @Test
127
    public void testRemoveRepresentation() {
128
        Assert.assertTrue("Representations must contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
129
        media1.removeRepresentation(mediaRepresentation1);
130
        Assert.assertFalse("Representations must not contain mediaRepresentation1", media1.getRepresentations().contains(mediaRepresentation1));
131
        Assert.assertEquals("Number of representations must be 1", 1, media1.getRepresentations().size());
132
        media1.removeRepresentation(mediaRepresentation2);
133
        Assert.assertFalse("Representations must not contain mediaRepresentation2", media1.getRepresentations().contains(mediaRepresentation2));
134
        Assert.assertEquals("Number of representations must be 0", 0, media1.getRepresentations().size());
135
    }
136

    
137
    @Test
138
    public void testAddRights() {
139
        Assert.assertTrue("Rights must contain rights1", media1.getRights().contains(rights1));
140
    }
141

    
142
    @Test
143
    public void testRemoveRights() {
144
        Assert.assertTrue("Rights must contain rights1", media1.getRights().contains(rights1));
145
        media1.removeRights(rights1);
146
        Assert.assertFalse("Rights must not contain rights1", media1.getRights().contains(rights1));
147
        Assert.assertEquals("Number of rights must be 0", 0, media1.getRights().size());
148
    }
149

    
150
    @Test
151
    public void testAddTitle() {
152
        Assert.assertSame("Title must be the same", languageString2, media1.getAllTitles().get(Language.DEFAULT()) );
153
    }
154

    
155
    @Test
156
    public void testRemoveTitle() {
157
        Assert.assertSame("Title must be the same", languageString2, media1.getAllTitles().get(Language.DEFAULT()) );
158
        media1.removeTitle(Language.GERMAN());
159
        Assert.assertEquals("Number of titles must be 1", 1, media1.getAllTitles().size());
160
        media1.removeTitle(Language.DEFAULT());
161
        Assert.assertEquals("Number of titles must be 0", 0, media1.getAllTitles().size());
162
        Assert.assertFalse("Title must not contain languageString2", languageString2.equals(media1.getAllTitles().get(Language.DEFAULT())));
163
    }
164

    
165
    @Test
166
    public void testGetMediaCreated() {
167
        Assert.assertEquals("Media created year must be 2002", "2002", media1.getMediaCreated().getYear());
168
    }
169

    
170
    @Test
171
    public void testGetDescription() {
172
        Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
173
        Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
174
    }
175

    
176
    @Test
177
    public void testAddDescriptionLanguageString() {
178
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
179
        Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
180
        Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
181
        media1.putDescription(languageString2);
182
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
183
        Assert.assertEquals("Default language description must be languageString2", languageString2, media1.getAllDescriptions().get(Language.DEFAULT()) );
184
    }
185

    
186
    @Test
187
    public void testAddDescriptionStringLanguage() {
188
        Assert.assertTrue("Clone must have a german language description", media1.getAllDescriptions().containsKey(Language.GERMAN()));
189
        Assert.assertSame("Description1 must be the same", "media1Desc2", media1.getAllDescriptions().get(Language.GERMAN()).getText() );
190
        media1.putDescription(Language.DEFAULT(), "testDesc");
191
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
192
        media1.putDescription(Language.DEFAULT(), "testDesc2");
193
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
194
        Assert.assertSame("Default language description must be 'testDesc2'", "testDesc2", media1.getAllDescriptions().get(Language.DEFAULT()).getText() );
195
    }
196

    
197
    @Test
198
    public void testRemoveDescription() {
199
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
200
        Assert.assertTrue("Clone must have a default language description", media1.getAllDescriptions().containsKey(Language.DEFAULT()));
201
        Assert.assertSame("Description1 must be the same", languageString1, media1.getAllDescriptions().get(Language.DEFAULT()) );
202
        media1.removeDescription(Language.JAPANESE());
203
        Assert.assertEquals("Number of descriptions must be 2", 2, media1.getAllDescriptions().size() );
204
        media1.removeDescription(Language.DEFAULT());
205
        Assert.assertEquals("Number of descriptions must be 1", 1, media1.getAllDescriptions().size() );
206
        media1.removeDescription(Language.DEFAULT());
207
        Assert.assertEquals("Number of descriptions must be 1", 1, media1.getAllDescriptions().size() );
208
        media1.removeDescription(Language.GERMAN());
209
        Assert.assertEquals("Number of descriptions must be 0", 0, media1.getAllDescriptions().size() );
210
    }
211
}
(1-1/2)