2 * Copyright (C) 2007 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.
10 package eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.description
;
12 import static org
.junit
.Assert
.assertEquals
;
13 import static org
.junit
.Assert
.assertFalse
;
14 import static org
.junit
.Assert
.assertNotNull
;
16 import java
.util
.HashSet
;
17 import java
.util
.List
;
19 import java
.util
.UUID
;
21 import org
.junit
.Before
;
22 import org
.junit
.Test
;
23 import org
.unitils
.dbunit
.annotation
.DataSet
;
24 import org
.unitils
.spring
.annotation
.SpringBeanByType
;
26 import eu
.etaxonomy
.cdm
.model
.description
.AbsenceTerm
;
27 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionBase
;
28 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
29 import eu
.etaxonomy
.cdm
.model
.description
.PresenceTerm
;
30 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
31 import eu
.etaxonomy
.cdm
.model
.description
.TextData
;
32 import eu
.etaxonomy
.cdm
.model
.location
.NamedArea
;
33 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.IDefinedTermDao
;
34 import eu
.etaxonomy
.cdm
.persistence
.dao
.description
.IDescriptionDao
;
35 import eu
.etaxonomy
.cdm
.test
.integration
.CdmIntegrationTest
;
38 public class DescriptionDaoHibernateImplTest
extends CdmIntegrationTest
{
41 IDescriptionDao descriptionDao
;
44 IDefinedTermDao definedTermDao
;
46 private Set
<NamedArea
> namedAreas
;
47 private Set
<Feature
> features
;
49 private UUID northernAmericaUuid
;
50 private UUID southernAmericaUuid
;
51 private UUID antarcticaUuid
;
57 uuid
= UUID
.fromString("5f3265ed-68ad-4ec3-826f-0d29d25986b9");
59 namedAreas
= new HashSet
<NamedArea
>();
60 northernAmericaUuid
= UUID
.fromString("2757e726-d897-4546-93bd-7951d203bf6f");
61 southernAmericaUuid
= UUID
.fromString("6310b3ba-96f4-4855-bb5b-326e7af188ea");
62 antarcticaUuid
= UUID
.fromString("791b3aa0-54dd-4bed-9b68-56b4680aad0c");
64 features
= new HashSet
<Feature
>();
69 public void testCountByDistribution() {
70 NamedArea northernAmerica
= (NamedArea
)definedTermDao
.findByUuid(northernAmericaUuid
);
71 NamedArea southernAmerica
= (NamedArea
)definedTermDao
.findByUuid(southernAmericaUuid
);
72 NamedArea antarctica
= (NamedArea
)definedTermDao
.findByUuid(antarcticaUuid
);
74 assert northernAmerica
!= null : "term must exist";
75 assert southernAmerica
!= null : "term must exist";
76 assert antarctica
!= null : "term must exist";
78 namedAreas
.add(northernAmerica
);
79 namedAreas
.add(southernAmerica
);
80 namedAreas
.add(antarctica
);
82 int numberOfDescriptions
= descriptionDao
.countDescriptionByDistribution(namedAreas
, null);
83 assertEquals("countDescriptionsByDistribution should return 23",23,numberOfDescriptions
);
87 public void testCountByDistributionWithStatus() {
88 NamedArea northernAmerica
= (NamedArea
)definedTermDao
.findByUuid(northernAmericaUuid
);
89 NamedArea southernAmerica
= (NamedArea
)definedTermDao
.findByUuid(southernAmericaUuid
);
90 NamedArea antarctica
= (NamedArea
)definedTermDao
.findByUuid(antarcticaUuid
);
92 assert northernAmerica
!= null : "term must exist";
93 assert southernAmerica
!= null : "term must exist";
94 assert antarctica
!= null : "term must exist";
96 namedAreas
.add(northernAmerica
);
97 namedAreas
.add(southernAmerica
);
98 namedAreas
.add(antarctica
);
100 int numberOfDescriptions
= descriptionDao
.countDescriptionByDistribution(namedAreas
, PresenceTerm
.PRESENT());
101 assertEquals("countDescriptionsByDistribution should return 20",20,numberOfDescriptions
);
105 public void testGetByDistribution() {
106 NamedArea northernAmerica
= (NamedArea
)definedTermDao
.findByUuid(northernAmericaUuid
);
107 NamedArea southernAmerica
= (NamedArea
)definedTermDao
.findByUuid(southernAmericaUuid
);
108 NamedArea antarctica
= (NamedArea
)definedTermDao
.findByUuid(antarcticaUuid
);
110 assert northernAmerica
!= null : "term must exist";
111 assert southernAmerica
!= null : "term must exist";
112 assert antarctica
!= null : "term must exist";
114 namedAreas
.add(northernAmerica
);
115 namedAreas
.add(southernAmerica
);
116 namedAreas
.add(antarctica
);
118 List
<TaxonDescription
> descriptions
= descriptionDao
.searchDescriptionByDistribution(namedAreas
, null, 10,2);
119 assertNotNull("searchDescriptionByDistribution should return a List",descriptions
);
120 assertFalse("searchDescriptionsByDistribution should not be empty",descriptions
.isEmpty());
121 assertEquals("searchDescriptionsByDistribution should return 3 elements",3,descriptions
.size());
125 public void testGetByDistributionWithStatus() {
126 NamedArea northernAmerica
= (NamedArea
)definedTermDao
.findByUuid(northernAmericaUuid
);
127 NamedArea southernAmerica
= (NamedArea
)definedTermDao
.findByUuid(southernAmericaUuid
);
128 NamedArea antarctica
= (NamedArea
)definedTermDao
.findByUuid(antarcticaUuid
);
130 assert northernAmerica
!= null : "term must exist";
131 assert southernAmerica
!= null : "term must exist";
132 assert antarctica
!= null : "term must exist";
134 namedAreas
.add(northernAmerica
);
135 namedAreas
.add(southernAmerica
);
136 namedAreas
.add(antarctica
);
138 List
<TaxonDescription
> descriptions
= descriptionDao
.searchDescriptionByDistribution(namedAreas
, AbsenceTerm
.ABSENT(), 10,0);
139 assertNotNull("searchDescriptionByDistribution should return a List",descriptions
);
140 assertFalse("searchDescriptionsByDistribution should not be empty",descriptions
.isEmpty());
141 assertEquals("searchDescriptionsByDistribution should return 3 elements",3,descriptions
.size());
145 public void testCountDescriptionsWithText() {
146 int numberOfDescriptions
= descriptionDao
.countDescriptions(TaxonDescription
.class, null, true, null);
148 assertNotNull("countDescriptions should return a 2",numberOfDescriptions
);
152 public void testListDescriptionsWithText() {
153 List
<TaxonDescription
> descriptions
= descriptionDao
.listDescriptions(TaxonDescription
.class, null, true, null,null,null);
155 assertNotNull("listDescriptions should return a List",descriptions
);
156 assertFalse("listDescriptions should not be empty", descriptions
.isEmpty());
157 assertEquals("listDescriptions should return 2 descriptions",2,descriptions
.size());
161 public void testCountDescriptionsWithTextAndFeatures() {
162 features
.add(Feature
.ECOLOGY());
163 int numberOfDescriptions
= descriptionDao
.countDescriptions(TaxonDescription
.class, null, true, features
);
165 assertNotNull("countDescriptions should return a 1",numberOfDescriptions
);
169 public void testListDescriptionsWithTextAndFeatures() {
170 features
.add(Feature
.ECOLOGY());
171 List
<TaxonDescription
> descriptions
= descriptionDao
.listDescriptions(TaxonDescription
.class, null, true, features
,null,null);
173 assertNotNull("listDescriptions should return a List",descriptions
);
174 assertFalse("listDescriptions should not be empty", descriptions
.isEmpty());
175 assertEquals("listDescriptions should return 1 descriptions",1,descriptions
.size());
179 public void testCountDescriptionElements() {
180 DescriptionBase description
= descriptionDao
.findByUuid(uuid
);
181 assert description
!= null : "description must exist";
183 int numberOfDescriptionElements
= descriptionDao
.countDescriptionElements(description
, null, TextData
.class);
185 assertEquals("countDescriptionElements should return 2",2,numberOfDescriptionElements
);
189 public void testGetDescriptionElements() {
190 DescriptionBase description
= descriptionDao
.findByUuid(uuid
);
191 assert description
!= null : "description must exist";
193 List
<TextData
> elements
= descriptionDao
.getDescriptionElements(description
, null, TextData
.class, null, null);
195 assertNotNull("getDescriptionElements should return a List");
196 assertFalse("getDescriptionElements should not be empty",elements
.isEmpty());
197 assertEquals("getDescriptionElement should return 2 elements",2,elements
.size());
201 public void testCountDescriptionElementsFeature() {
202 features
.add(Feature
.ECOLOGY());
203 DescriptionBase description
= descriptionDao
.findByUuid(uuid
);
204 assert description
!= null : "description must exist";
206 int numberOfDescriptionElements
= descriptionDao
.countDescriptionElements(description
, features
, TextData
.class);
208 assertEquals("countDescriptionElements should return 1",1,numberOfDescriptionElements
);
212 public void testGetDescriptionElementsByFeature() {
213 features
.add(Feature
.ECOLOGY());
214 DescriptionBase description
= descriptionDao
.findByUuid(uuid
);
215 assert description
!= null : "description must exist";
217 List
<TextData
> elements
= descriptionDao
.getDescriptionElements(description
, features
, TextData
.class, null, null);
219 assertNotNull("getDescriptionElements should return a List");
220 assertFalse("getDescriptionElements should not be empty",elements
.isEmpty());
221 assertEquals("getDescriptionElement should return 1 elements",1,elements
.size());