BP-787 changes on reports
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java
index aa2f660..d02eee1 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/util/ReportGroupDtoConverter.java
@@ -169,10 +169,11 @@
public void addUserString(int i, StandbyScheduleBodySelectionDto standbyScheduleBodySelectionDto,
ReportGroupDto reportGroupDto, ReportDto reportDto, Map<Long, StandbyScheduleBodySelectionDto> lastBodyMap,
List<StandbyScheduleBodySelectionDto> dayGroupList) throws SpException {
+ StandbyScheduleBodySelectionDto lastBody = null;
- StandbyScheduleBodySelectionDto lastBody = lastBodyMap
- .get(standbyScheduleBodySelectionDto.getStandbyGroup().getId());
-
+ if (standbyScheduleBodySelectionDto != null && standbyScheduleBodySelectionDto.getStandbyGroup() != null) {
+ lastBody = lastBodyMap.get(standbyScheduleBodySelectionDto.getStandbyGroup().getId());
+ }
String userString = userString(lastBody, standbyScheduleBodySelectionDto, reportDto, dayGroupList.size());
String str = reportGroupDto.getUserX(i);
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java
index d0c1ee1..d9c5b68 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest.java
@@ -12,6 +12,7 @@
********************************************************************************/
package org.eclipse.openk.sp.util;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.text.ParseException;
@@ -188,10 +189,13 @@
ReportGroupDto result = reportGroupDtoConverter.addReportRow(reportDto, inputDto, plan, dateIndex, groupIdArray,
lastBodyMap);
- assertNotNull(result);
+ Date resultDate = result.getFromDate();
+
+// assertNotNull(result);
+ assertEquals(dateIndex, resultDate);
+// assertNotNull(result.getFromDate());
}
- @Ignore
@Test
public void addReportTest() throws SpException, ParseException {
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest2.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest2.java
new file mode 100644
index 0000000..c77281e
--- /dev/null
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/util/ReportGroupDtoConverterTest2.java
@@ -0,0 +1,224 @@
+/********************************************************************************
+ * Copyright (c) 2018 Mettenmeier GmbH
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ ********************************************************************************/
+package org.eclipse.openk.sp.util;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.openk.sp.controller.planning.PlannedDataController;
+import org.eclipse.openk.sp.controller.reports.ReportController;
+import org.eclipse.openk.sp.db.converter.EntityConverter;
+import org.eclipse.openk.sp.db.dao.StandbyGroupRepository;
+import org.eclipse.openk.sp.db.model.StandbyGroup;
+import org.eclipse.openk.sp.db.model.StandbyList;
+import org.eclipse.openk.sp.dto.StandbyGroupSelectionDto;
+import org.eclipse.openk.sp.dto.StandbyScheduleBodySelectionDto;
+import org.eclipse.openk.sp.dto.StandbyScheduleDto;
+import org.eclipse.openk.sp.dto.UserSmallSelectionDto;
+import org.eclipse.openk.sp.dto.report.ReportDto;
+import org.eclipse.openk.sp.dto.report.ReportGroupDto;
+import org.eclipse.openk.sp.dto.report.ReportInputDto;
+import org.eclipse.openk.sp.exceptions.SpException;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import com.google.gson.Gson;
+
+@RunWith(MockitoJUnitRunner.class)
+public class ReportGroupDtoConverterTest2 {
+
+ @Mock
+ private PlannedDataController plannedDataController;
+
+ @Mock
+ EntityConverter entityConverter;
+
+ @Mock
+ StandbyGroupRepository standbyGroupRepository;
+
+ @InjectMocks
+ public ReportGroupDtoConverter2 reportGroupDtoConverter;
+
+ private ReportDto getReport() {
+ ReportDto report = null;
+
+ report = new ReportDto();
+ report.setReportName("Monatsübersicht");
+ report.setPrintFormat("pdf");
+ report.setUserId(1L);
+ report.setValidFrom(new Date());
+ report.setValidTo(new Date());
+ report.setStandByGroup(new StandbyGroup());
+ report.setStandByList(new StandbyList());
+ report.setDefaultDayRange(5);
+ report.setReportLevel("Ist-Ebene");
+ report.setGroupPosition(1);
+
+ return report;
+ }
+
+ @Test
+ public void userStringTest() {
+ FileHelperTest fh = new FileHelperTest();
+
+ StandbyScheduleBodySelectionDto sb = new StandbyScheduleBodySelectionDto();
+
+ ReportDto reportDto = new ReportDto();
+ reportDto.setReportName(ReportController.REPORT_MAX10_GROUPS_ONLY_NAMES);
+
+ sb.setValidFrom(new Date());
+ sb.setValidTo(new Date());
+
+ String json = fh.loadStringFromResource("testUser.json");
+ UserSmallSelectionDto user = (UserSmallSelectionDto) new Gson().fromJson(json, UserSmallSelectionDto.class);
+ sb.setUser(user);
+
+ String result = reportGroupDtoConverter.userString(null, sb, reportDto, 1);
+ assertNotNull(result);
+
+ reportDto.setReportName(ReportController.REPORT_MAX10_GROUPS);
+ result = reportGroupDtoConverter.userString(null, sb, reportDto, 1);
+ assertNotNull(result);
+
+ sb.setUser(null);
+ result = reportGroupDtoConverter.userString(null, sb, reportDto, 1);
+ assertNotNull(result);
+ }
+
+ @Test
+ public void addUserStringTest() throws SpException {
+
+ FileHelperTest fh = new FileHelperTest();
+ ReportGroupDto reportGroupDto = new ReportGroupDto();
+ StandbyScheduleBodySelectionDto sb = new StandbyScheduleBodySelectionDto();
+ ReportDto reportDto = new ReportDto();
+ Map<Long, StandbyScheduleBodySelectionDto> lastBodyMap = new HashMap<>();
+
+ reportDto.setReportName(ReportController.REPORT_MAX10_GROUPS_ONLY_NAMES);
+
+ sb.setValidFrom(new Date());
+ sb.setValidTo(new Date());
+
+ String json = fh.loadStringFromResource("testUser.json");
+ UserSmallSelectionDto user = (UserSmallSelectionDto) new Gson().fromJson(json, UserSmallSelectionDto.class);
+ sb.setUser(user);
+
+ json = fh.loadStringFromResource("testStandbyGroup.json");
+ StandbyGroupSelectionDto group = (StandbyGroupSelectionDto) new Gson().fromJson(json,
+ StandbyGroupSelectionDto.class);
+ sb.setStandbyGroup(group);
+
+ List<StandbyScheduleBodySelectionDto> dayGroupList = new ArrayList<>();
+ dayGroupList.add(sb);
+
+ reportGroupDtoConverter.addUserString(1, sb, reportGroupDto, reportDto, lastBodyMap, dayGroupList);
+
+ reportGroupDtoConverter.addUserString(1, sb, reportGroupDto, reportDto, lastBodyMap, dayGroupList);
+
+ reportGroupDtoConverter.addUserString(1, sb, reportGroupDto, reportDto, lastBodyMap, dayGroupList);
+
+ }
+
+ @Test(expected = SpException.class)
+ public void addUserStringErrorTest() throws SpException {
+
+ FileHelperTest fh = new FileHelperTest();
+ ReportGroupDto reportGroupDto = new ReportGroupDto();
+ StandbyScheduleBodySelectionDto sb = new StandbyScheduleBodySelectionDto();
+ ReportDto reportDto = new ReportDto();
+ Map<Long, StandbyScheduleBodySelectionDto> lastBodyMap = new HashMap<>();
+ reportDto.setReportName(ReportController.REPORT_MAX10_GROUPS_ONLY_NAMES);
+
+ sb.setValidFrom(new Date());
+ sb.setValidTo(new Date());
+
+ String json = fh.loadStringFromResource("testUser.json");
+ UserSmallSelectionDto user = (UserSmallSelectionDto) new Gson().fromJson(json, UserSmallSelectionDto.class);
+ sb.setUser(user);
+
+ json = fh.loadStringFromResource("testStandbyGroup.json");
+ StandbyGroupSelectionDto standbyGroup = (StandbyGroupSelectionDto) new Gson().fromJson(json,
+ StandbyGroupSelectionDto.class);
+ sb.setStandbyGroup(standbyGroup);
+
+ List<StandbyScheduleBodySelectionDto> dayGroupList = new ArrayList<>();
+ dayGroupList.add(sb);
+
+ reportGroupDtoConverter.addUserString(123, sb, reportGroupDto, reportDto, lastBodyMap, dayGroupList);
+
+ }
+
+ @Ignore
+ @Test
+ public void addReportRowTest() {
+
+ FileHelperTest fh = new FileHelperTest();
+ String json = fh.loadStringFromResource("testStandbyScheduleDto.json");
+ StandbyScheduleDto plan = (StandbyScheduleDto) new Gson().fromJson(json, StandbyScheduleDto.class);
+
+ ReportDto reportDto = getReport();
+ Map<Long, StandbyScheduleBodySelectionDto> lastBodyMap = new HashMap<>();
+ List<ReportInputDto> inputDto = new ArrayList<>();
+
+ Date dateIndex = DateHelper.getDate(2019, 2, 12);
+ Long[] groupIdArray = new Long[1];
+ groupIdArray[0] = new Long(1);
+
+ ReportGroupDto result = reportGroupDtoConverter.addReportRow(reportDto, inputDto, plan, dateIndex, groupIdArray,
+ lastBodyMap);
+
+ assertNotNull(result);
+ }
+
+ @Ignore
+ @Test
+ public void addReportTest() throws SpException, ParseException {
+
+ FileHelperTest fh = new FileHelperTest();
+ String json = fh.loadStringFromResource("testStandbyScheduleDto.json");
+ StandbyScheduleDto plan = (StandbyScheduleDto) new Gson().fromJson(json, StandbyScheduleDto.class);
+
+ json = fh.loadStringFromResource("testStandbyGroup.json");
+ StandbyGroup sb = (StandbyGroup) new Gson().fromJson(json, StandbyGroup.class);
+
+ StandbyGroupSelectionDto dto = (StandbyGroupSelectionDto) new Gson().fromJson(json,
+ StandbyGroupSelectionDto.class);
+
+ ReportDto reportDto = getReport();
+ reportDto.setValidFrom(new Date());
+ reportDto.setValidTo(new Date());
+ reportDto.setStandByList(new StandbyList(plan.getFilter().getStandbyListId()));
+
+ Mockito.when(
+ plannedDataController.getFilteredPlanByStatus(Mockito.any(), Mockito.anyLong(), Mockito.anyBoolean()))
+ .thenReturn(plan);
+ Mockito.when(standbyGroupRepository.findOne(Mockito.anyLong())).thenReturn(sb);
+ Mockito.when(entityConverter.convertEntityToDto(Mockito.any(), Mockito.any())).thenReturn(dto);
+
+ List<ReportInputDto> result = reportGroupDtoConverter.get10Rows(reportDto);
+
+ assertNotNull(result);
+ }
+
+}