1 package fr.ifremer.dali.dao.referential;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import fr.ifremer.dali.dao.DaliDatabaseResource;
27 import fr.ifremer.dali.dto.referential.*;
28 import fr.ifremer.dali.service.DaliServiceLocator;
29 import fr.ifremer.dali.service.StatusFilter;
30 import fr.ifremer.quadrige3.core.dao.referential.StatusCode;
31 import fr.ifremer.quadrige3.core.test.AbstractDaoTest;
32 import fr.ifremer.quadrige3.ui.core.dto.referential.StatusDTO;
33 import org.apache.commons.lang3.builder.ToStringBuilder;
34 import org.apache.commons.lang3.builder.ToStringStyle;
35 import org.apache.commons.logging.Log;
36 import org.apache.commons.logging.LogFactory;
37 import org.junit.Before;
38 import org.junit.ClassRule;
39 import org.junit.Test;
40 import org.springframework.dao.DataRetrievalFailureException;
41
42 import java.util.List;
43
44 import static org.junit.Assert.*;
45
46 public class ReferentialDaoReadTest extends AbstractDaoTest {
47
48 private static final Log log = LogFactory.getLog(ReferentialDaoReadTest.class);
49
50 @ClassRule
51 public static final DaliDatabaseResource dbResource = DaliDatabaseResource.readDb();
52
53 private DaliReferentialDao dao;
54 private DaliAnalysisInstrumentDao analysisInstrumentDao;
55 private DaliSamplingEquipmentDao samplingEquipmentDao;
56 private DaliUnitDao unitDao;
57
58
59 @Before
60 @Override
61 public void setUp() throws Exception {
62 super.setUp();
63 dao = DaliServiceLocator.instance().getService("daliReferentialDao", DaliReferentialDao.class);
64 analysisInstrumentDao = DaliServiceLocator.instance().getService("daliAnalysisInstrumentDao", DaliAnalysisInstrumentDao.class);
65 samplingEquipmentDao = DaliServiceLocator.instance().getService("daliSamplingEquipmentDao", DaliSamplingEquipmentDao.class);
66 unitDao = DaliServiceLocator.instance().getService("daliUnitDao", DaliUnitDao.class);
67 }
68
69 @Test
70 public void getAllDepthLevel() {
71 List<LevelDTO> depthLevels = dao.getAllDepthLevels();
72 assertNotNull(depthLevels);
73 assertEquals(3, depthLevels.size());
74
75 if (log.isDebugEnabled()) {
76 for (LevelDTO dto : depthLevels) {
77 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
78 }
79 }
80
81 LevelDTO depthLevel = dao.getDepthLevelById(1);
82 assertNotNull(depthLevel);
83 assertEquals("Immergé", depthLevel.getName());
84
85 try {
86 dao.getDepthLevelById(10);
87 fail("should throw DataRetrievalFailureException");
88 } catch (DataRetrievalFailureException ex) {
89 assertNotNull(ex);
90 }
91 }
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 @Test
107 public void getAllUnit() {
108 List<UnitDTO> units = unitDao.getAllUnits(StatusFilter.ACTIVE.toStatusCodes());
109 assertNotNull(units);
110 assertEquals(15, units.size());
111
112 if (log.isDebugEnabled()) {
113 for (UnitDTO dto : units) {
114 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
115 }
116 }
117
118 units = unitDao.findUnits(null, StatusFilter.ALL.intersect(StatusCode.DISABLE.getValue()));
119 assertNotNull(units);
120 assertEquals(0, units.size());
121
122 units = unitDao.findUnits(2, StatusFilter.ACTIVE.toStatusCodes());
123 assertNotNull(units);
124 assertEquals(1, units.size());
125 assertEquals((Integer) 2, units.get(0).getId());
126
127 UnitDTO unit = unitDao.getUnitById(1);
128 assertNotNull(unit);
129 assertEquals("%", unit.getSymbol());
130
131 try {
132 unitDao.getUnitById(20);
133 fail("should throw DataRetrievalFailureException");
134 } catch (DataRetrievalFailureException ex) {
135 assertNotNull(ex);
136 }
137 }
138
139 @Test
140 public void getAllSamplingEquipment() {
141 List<SamplingEquipmentDTO> samplingEquipments = samplingEquipmentDao.getAllSamplingEquipments(StatusFilter.ACTIVE.toStatusCodes());
142 assertNotNull(samplingEquipments);
143 assertEquals(4, samplingEquipments.size());
144
145 if (log.isDebugEnabled()) {
146 for (SamplingEquipmentDTO dto : samplingEquipments) {
147 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
148 }
149 }
150
151 samplingEquipments = samplingEquipmentDao.findSamplingEquipments(StatusFilter.ACTIVE.toStatusCodes(), null, 1);
152 assertNotNull(samplingEquipments);
153 assertEquals(0, samplingEquipments.size());
154
155 samplingEquipments = samplingEquipmentDao.findSamplingEquipments(StatusFilter.ACTIVE.toStatusCodes(), 2, null);
156 assertNotNull(samplingEquipments);
157 assertEquals(1, samplingEquipments.size());
158
159 SamplingEquipmentDTO samplingEquipment = samplingEquipmentDao.getSamplingEquipmentById(3);
160 assertNotNull(samplingEquipment);
161 assertEquals("Benne", samplingEquipment.getName());
162
163
164 samplingEquipment = samplingEquipmentDao.getSamplingEquipmentById(1);
165 assertNotNull(samplingEquipment);
166 assertEquals("Bécher (DALI)", samplingEquipment.getName());
167
168 try {
169 samplingEquipmentDao.getSamplingEquipmentById(7);
170 fail("should throw DataRetrievalFailureException");
171 } catch (DataRetrievalFailureException ex) {
172 assertNotNull(ex);
173 }
174 }
175
176 @Test
177 public void getAllAnalysisInstrument() {
178 List<AnalysisInstrumentDTO> analysisInstruments = analysisInstrumentDao.getAllAnalysisInstruments(StatusFilter.ACTIVE.toStatusCodes());
179 assertNotNull(analysisInstruments);
180 assertEquals(3, analysisInstruments.size());
181
182 if (log.isDebugEnabled()) {
183 for (AnalysisInstrumentDTO dto : analysisInstruments) {
184 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
185 }
186 }
187
188 analysisInstruments = analysisInstrumentDao.findAnalysisInstruments(StatusFilter.ALL.intersect(StatusCode.DISABLE.getValue()), null);
189 assertNotNull(analysisInstruments);
190 assertEquals(1, analysisInstruments.size());
191 assertEquals((Integer) 4, analysisInstruments.get(0).getId());
192
193 analysisInstruments = analysisInstrumentDao.findAnalysisInstruments(StatusFilter.ACTIVE.toStatusCodes(), 3);
194 assertNotNull(analysisInstruments);
195 assertEquals(1, analysisInstruments.size());
196 assertEquals((Integer) 3, analysisInstruments.get(0).getId());
197
198
199 AnalysisInstrumentDTO dto = analysisInstrumentDao.getAnalysisInstrumentById(2);
200 assertNotNull(dto);
201 assertEquals("Microscope optique", dto.getName());
202 assertEquals("1", dto.getStatus().getCode());
203
204 dto = analysisInstrumentDao.getAnalysisInstrumentById(4);
205 assertNotNull(dto);
206 assertEquals("0", dto.getStatus().getCode());
207
208 try {
209 analysisInstrumentDao.getAnalysisInstrumentById(5);
210 fail("should throw DataRetrievalFailureException");
211 } catch (DataRetrievalFailureException ex) {
212 assertNotNull(ex);
213 }
214 }
215
216 @Test
217 public void getAllStatus() {
218 List<StatusDTO> status = dao.getStatusByCodes(StatusFilter.ACTIVE.toStatusCodes());
219 assertNotNull(status);
220 assertEquals(1, status.size());
221
222 if (log.isDebugEnabled()) {
223 for (StatusDTO dto : status) {
224 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
225 }
226 }
227
228 }
229
230 @Test
231 public void getAllQualityLevel() {
232 List<QualityLevelDTO> qualityLevels = dao.getAllQualityFlags(StatusFilter.ACTIVE.toStatusCodes());
233 assertNotNull(qualityLevels);
234 assertEquals(4, qualityLevels.size());
235
236 QualityLevelDTO qualityLevel = dao.getQualityFlagByCode("0");
237 assertNotNull(qualityLevel);
238 assertEquals("non qualifié", qualityLevel.getName());
239
240 if (log.isDebugEnabled()) {
241 for (QualityLevelDTO dto : qualityLevels) {
242 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
243 }
244 }
245
246 }
247
248 @Test
249 public void getAllPositioningSystem() {
250 List<PositioningSystemDTO> positioningSystems = dao.getAllPositioningSystems();
251 assertNotNull(positioningSystems);
252 assertEquals(12, positioningSystems.size());
253
254 if (log.isDebugEnabled()) {
255 for (PositioningSystemDTO dto : positioningSystems) {
256 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
257 }
258 }
259
260 }
261
262 @Test
263 public void getAllGroupingType() {
264 List<GroupingTypeDTO> groupingTypes = dao.getAllGroupingTypes();
265 assertNotNull(groupingTypes);
266 assertEquals(3, groupingTypes.size());
267 if (log.isDebugEnabled()) {
268 for (GroupingTypeDTO dto : groupingTypes) {
269 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
270 }
271 }
272
273 final String groupingTypeCode = "ZONESMARINES";
274 boolean found = false;
275 for (GroupingTypeDTO groupingType : groupingTypes) {
276 if (groupingTypeCode.equals(groupingType.getCode())) {
277 found = true;
278 break;
279 }
280 }
281 assertTrue(found);
282
283 List<GroupingDTO> groupings = dao.getGroupingsByType(groupingTypeCode);
284 assertNotNull(groupings);
285 assertEquals(2, groupings.size());
286 if (log.isDebugEnabled()) {
287 for (GroupingDTO dto : groupings) {
288 log.debug(ToStringBuilder.reflectionToString(dto, ToStringStyle.SHORT_PREFIX_STYLE));
289 }
290 }
291
292 }
293 }