Project

General

Profile

Download (4.62 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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.persistence.dao.hibernate.occurrence;
10

    
11
import java.io.FileNotFoundException;
12
import java.util.Collections;
13
import java.util.List;
14
import java.util.stream.Collectors;
15

    
16
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
17
import org.h2.util.StringUtils;
18
import org.junit.Assert;
19
import org.junit.Test;
20
import org.unitils.spring.annotation.SpringBeanByType;
21

    
22
import eu.etaxonomy.cdm.common.URI;
23
import eu.etaxonomy.cdm.model.description.Feature;
24
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
25
import eu.etaxonomy.cdm.model.description.TextData;
26
import eu.etaxonomy.cdm.model.media.Media;
27
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
28
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
29
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
30
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;
31
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
32

    
33
public class OccurrenceDaoHibernateImplTest  extends CdmIntegrationTest {
34

    
35
    private static final Logger logger = LogManager.getLogger(OccurrenceDaoHibernateImplTest.class);
36

    
37
    @SpringBeanByType
38
	private IOccurrenceDao dao;
39

    
40
//**************** TESTS ************************************************
41

    
42
	@Test
43
	public void testRebuildIndex() {
44
		logger.warn("Not yet implemented");
45
	}
46

    
47
    @Test
48
    public void testCountMedia() {
49
        MediaSpecimen unit = MediaSpecimen.NewInstance(SpecimenOrObservationType.Media);
50
        SpecimenDescription desc = SpecimenDescription.NewInstance(unit);
51
        desc.setImageGallery(true);
52
        TextData textData = TextData.NewInstance(Feature.IMAGE());
53
        desc.addElement(textData);
54
        Media media1 = Media.NewInstance(URI.create("https://www.abc.de"), 5, "jpg", "jpg");
55
        Media media2 = Media.NewInstance(URI.create("https://www.abc.de"), 5, "jpg", "jpg");
56
        textData.addMedia(media1);
57
        textData.addMedia(media2);
58

    
59
        Media media3 = Media.NewInstance(URI.create("https://www.abc.de"), 5, "jpg", "jpg");
60
        unit.setMediaSpecimen(media3);
61
        dao.save(unit);
62

    
63
        Assert.assertEquals(3, dao.countMedia(unit));
64
        unit.setMediaSpecimen(media2);
65
        Assert.assertEquals(2, dao.countMedia(unit));
66
    }
67

    
68
    @Test
69
    public void testGetMedia() {
70
        MediaSpecimen unit = MediaSpecimen.NewInstance(SpecimenOrObservationType.Media);
71
        SpecimenDescription desc = SpecimenDescription.NewInstance(unit);
72
        desc.setImageGallery(true);
73
        TextData textData = TextData.NewInstance(Feature.IMAGE());
74
        desc.addElement(textData);
75
        Media media1 = Media.NewInstance(URI.create("https://www.abc.de"), 5, "jpg", "jpg");
76
        Media media2 = Media.NewInstance(URI.create("https://www.defg.de"), 5, "jpg", "jpg");
77
        textData.addMedia(media1);
78
        textData.addMedia(media2);
79

    
80
        Media media3 = Media.NewInstance(URI.create("https://www.hij.de"), 5, "jpg", "jpg");
81
        unit.setMediaSpecimen(media3);
82
        dao.save(unit);
83

    
84
        List<Media> media = dao.getMedia(unit, null, null, null);
85
        Assert.assertEquals(3, media.size());
86
        //test that paging works (note: the sorting is not a requirement for the method, but with current implementation it works; if implementation is changed the test may need to be adapted
87
        List<Integer> ids = media.stream().map(m->m.getId()).collect(Collectors.toList());
88
        Collections.sort(ids);
89
        Assert.assertEquals(ids.get(0), (Integer)media.get(0).getId());
90
        Assert.assertEquals(ids.get(1), (Integer)media.get(1).getId());
91
        Assert.assertEquals(ids.get(2), (Integer)media.get(2).getId());
92
        media = dao.getMedia(unit, 2, 1, null);
93
        Assert.assertEquals(1, media.size());
94
        Assert.assertEquals(ids.get(2), (Integer)media.get(0).getId());
95

    
96
        //test deduplication
97
        unit.setMediaSpecimen(media2);
98
        Assert.assertEquals(2, dao.countMedia(unit));
99
    }
100

    
101
	@Test
102
	public void testSaveOriginalLabelData(){
103
		DerivedUnit unit = DerivedUnit.NewInstance(SpecimenOrObservationType.DerivedUnit);
104
		String originalLabelInfo = StringUtils.pad("my original info", 10000, "x", false);
105
		Assert.assertEquals(Integer.valueOf(10000),  (Integer)originalLabelInfo.length());
106
		unit.setOriginalLabelInfo(originalLabelInfo);
107
		//test that lob is supported
108
		dao.save(unit);
109
		//assert no exception
110
	}
111

    
112
    @Override
113
    public void createTestDataSet() throws FileNotFoundException {}
114
}
    (1-1/1)