2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.occurrence
;
11 import java
.io
.FileNotFoundException
;
12 import java
.util
.Collections
;
13 import java
.util
.List
;
14 import java
.util
.stream
.Collectors
;
16 import org
.apache
.logging
.log4j
.LogManager
;
17 import org
.apache
.logging
.log4j
.Logger
;
18 import org
.h2
.util
.StringUtils
;
19 import org
.junit
.Assert
;
20 import org
.junit
.Test
;
21 import org
.unitils
.spring
.annotation
.SpringBeanByType
;
23 import eu
.etaxonomy
.cdm
.common
.URI
;
24 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
25 import eu
.etaxonomy
.cdm
.model
.description
.SpecimenDescription
;
26 import eu
.etaxonomy
.cdm
.model
.description
.TextData
;
27 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
28 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
29 import eu
.etaxonomy
.cdm
.model
.occurrence
.MediaSpecimen
;
30 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
31 import eu
.etaxonomy
.cdm
.persistence
.dao
.occurrence
.IOccurrenceDao
;
32 import eu
.etaxonomy
.cdm
.test
.integration
.CdmIntegrationTest
;
34 public class OccurrenceDaoHibernateImplTest
extends CdmIntegrationTest
{
36 private static final Logger logger
= LogManager
.getLogger();
39 private IOccurrenceDao dao
;
41 //**************** TESTS ************************************************
44 public void testRebuildIndex() {
45 logger
.warn("Not yet implemented");
49 public void testCountMedia() {
50 MediaSpecimen unit
= MediaSpecimen
.NewInstance(SpecimenOrObservationType
.Media
);
51 SpecimenDescription desc
= SpecimenDescription
.NewInstance(unit
);
52 desc
.setImageGallery(true);
53 TextData textData
= TextData
.NewInstance(Feature
.IMAGE());
54 desc
.addElement(textData
);
55 Media media1
= Media
.NewInstance(URI
.create("https://www.abc.de"), 5, "jpg", "jpg");
56 Media media2
= Media
.NewInstance(URI
.create("https://www.abc.de"), 5, "jpg", "jpg");
57 textData
.addMedia(media1
);
58 textData
.addMedia(media2
);
60 Media media3
= Media
.NewInstance(URI
.create("https://www.abc.de"), 5, "jpg", "jpg");
61 unit
.setMediaSpecimen(media3
);
64 Assert
.assertEquals(3, dao
.countMedia(unit
));
65 unit
.setMediaSpecimen(media2
);
66 Assert
.assertEquals(2, dao
.countMedia(unit
));
70 public void testGetMedia() {
71 MediaSpecimen unit
= MediaSpecimen
.NewInstance(SpecimenOrObservationType
.Media
);
72 SpecimenDescription desc
= SpecimenDescription
.NewInstance(unit
);
73 desc
.setImageGallery(true);
74 TextData textData
= TextData
.NewInstance(Feature
.IMAGE());
75 desc
.addElement(textData
);
76 Media media1
= Media
.NewInstance(URI
.create("https://www.abc.de"), 5, "jpg", "jpg");
77 Media media2
= Media
.NewInstance(URI
.create("https://www.defg.de"), 5, "jpg", "jpg");
78 textData
.addMedia(media1
);
79 textData
.addMedia(media2
);
81 Media media3
= Media
.NewInstance(URI
.create("https://www.hij.de"), 5, "jpg", "jpg");
82 unit
.setMediaSpecimen(media3
);
85 List
<Media
> media
= dao
.getMedia(unit
, null, null, null);
86 Assert
.assertEquals(3, media
.size());
87 //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
88 List
<Integer
> ids
= media
.stream().map(m
->m
.getId()).collect(Collectors
.toList());
89 Collections
.sort(ids
);
90 Assert
.assertEquals(ids
.get(0), (Integer
)media
.get(0).getId());
91 Assert
.assertEquals(ids
.get(1), (Integer
)media
.get(1).getId());
92 Assert
.assertEquals(ids
.get(2), (Integer
)media
.get(2).getId());
93 media
= dao
.getMedia(unit
, 2, 1, null);
94 Assert
.assertEquals(1, media
.size());
95 Assert
.assertEquals(ids
.get(2), (Integer
)media
.get(0).getId());
98 unit
.setMediaSpecimen(media2
);
99 Assert
.assertEquals(2, dao
.countMedia(unit
));
103 public void testSaveOriginalLabelData(){
104 DerivedUnit unit
= DerivedUnit
.NewInstance(SpecimenOrObservationType
.DerivedUnit
);
105 String originalLabelInfo
= StringUtils
.pad("my original info", 10000, "x", false);
106 Assert
.assertEquals(Integer
.valueOf(10000), (Integer
)originalLabelInfo
.length());
107 unit
.setOriginalLabelInfo(originalLabelInfo
);
108 //test that lob is supported
110 //assert no exception
114 public void createTestDataSet() throws FileNotFoundException
{}