From f1b322f6e3b54c846097f21f2c3c8a1347426c52 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 17 Dec 2010 17:29:27 +0100 Subject: [PATCH] [Bug #751] Fixed WorkReportServiceTest for MySQL database. FEA: ItEr65S06BugFixing --- .../ws/workreports/WorkReportServiceTest.java | 117 ++++++++++++++++-- 1 file changed, 107 insertions(+), 10 deletions(-) diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/workreports/WorkReportServiceTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/workreports/WorkReportServiceTest.java index 0631de3df..d3bbd9e92 100644 --- a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/workreports/WorkReportServiceTest.java +++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/workreports/WorkReportServiceTest.java @@ -40,6 +40,8 @@ import org.joda.time.LocalDate; import org.joda.time.LocalTime; import org.junit.Test; import org.junit.runner.RunWith; +import org.navalplanner.business.common.IAdHocTransactionService; +import org.navalplanner.business.common.IOnTransaction; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.costcategories.daos.ITypeOfWorkHoursDAO; import org.navalplanner.business.costcategories.entities.TypeOfWorkHours; @@ -69,6 +71,7 @@ import org.navalplanner.ws.workreports.api.WorkReportDTO; import org.navalplanner.ws.workreports.api.WorkReportLineDTO; import org.navalplanner.ws.workreports.api.WorkReportListDTO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.annotation.NotTransactional; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -114,6 +117,9 @@ public class WorkReportServiceTest { @Autowired private ILabelTypeDAO labelTypeDAO; + @Autowired + private IAdHocTransactionService transactionService; + private final String workReportTypeCode = "TypeCode-A"; private final String workReportTypeCode2 = "TypeCode-B"; @@ -428,9 +434,19 @@ public class WorkReportServiceTest { } @Test - @Transactional + @NotTransactional public void importValidWorkReport() { - int previous = workReportDAO.getAll().size(); + int previous = transactionService + .runOnTransaction(new IOnTransaction() { + @Override + public Integer execute() { + return workReportDAO.getAll().size(); + } + }); + + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays .asList(createWorkReportDTO(workReportTypeCode))); @@ -440,7 +456,26 @@ public class WorkReportServiceTest { assertThat( instanceConstraintViolationsListDTO.instanceConstraintViolationsList .size(), equalTo(0)); - List workReports = workReportDAO.getAll(); + return null; + } + }); + + List workReports = transactionService + .runOnTransaction(new IOnTransaction>() { + @Override + public List execute() { + List list = workReportDAO.getAll(); + for (WorkReport workReport : list) { + Set workReportLines = workReport + .getWorkReportLines(); + for (WorkReportLine line : workReportLines) { + line.getNumHours(); + } + } + return list; + } + }); + assertThat(workReports.size(), equalTo(previous + 1)); Set workReportLines = workReports.get(previous) @@ -468,8 +503,15 @@ public class WorkReportServiceTest { } @Test + @NotTransactional public void importValidWorkReportWithDateAtWorkReportLevel() { - int previous = workReportDAO.getAll().size(); + int previous = transactionService + .runOnTransaction(new IOnTransaction() { + @Override + public Integer execute() { + return workReportDAO.getAll().size(); + } + }); WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode2); Date date = new LocalDate().toDateTimeAtStartOfDay().toDate(); @@ -483,7 +525,21 @@ public class WorkReportServiceTest { assertThat( instanceConstraintViolationsListDTO.instanceConstraintViolationsList .size(), equalTo(0)); - List workReports = workReportDAO.getAll(); + List workReports = transactionService + .runOnTransaction(new IOnTransaction>() { + @Override + public List execute() { + List list = workReportDAO.getAll(); + for (WorkReport workReport : list) { + Set workReportLines = workReport + .getWorkReportLines(); + for (WorkReportLine line : workReportLines) { + line.getDate(); + } + } + return list; + } + }); assertThat(workReports.size(), equalTo(previous + 1)); assertThat(workReports.get(previous).getDate(), equalTo(date)); @@ -508,8 +564,15 @@ public class WorkReportServiceTest { } @Test + @NotTransactional public void importValidWorkReportCalculatedHours() { - int previous = workReportDAO.getAll().size(); + int previous = transactionService + .runOnTransaction(new IOnTransaction() { + @Override + public Integer execute() { + return workReportDAO.getAll().size(); + } + }); WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode3); WorkReportLineDTO workReportLineDTO = workReportDTO.workReportLines @@ -531,7 +594,21 @@ public class WorkReportServiceTest { assertThat( instanceConstraintViolationsListDTO.instanceConstraintViolationsList .size(), equalTo(0)); - List workReports = workReportDAO.getAll(); + List workReports = transactionService + .runOnTransaction(new IOnTransaction>() { + @Override + public List execute() { + List list = workReportDAO.getAll(); + for (WorkReport workReport : list) { + Set workReportLines = workReport + .getWorkReportLines(); + for (WorkReportLine line : workReportLines) { + line.getNumHours(); + } + } + return list; + } + }); assertThat(workReports.size(), equalTo(previous + 1)); Set workReportLines = workReports.get(previous) @@ -543,9 +620,15 @@ public class WorkReportServiceTest { } @Test - @Transactional + @NotTransactional public void importAndUpdateValidWorkReport() { - int previous = workReportDAO.getAll().size(); + int previous = transactionService + .runOnTransaction(new IOnTransaction() { + @Override + public Integer execute() { + return workReportDAO.getAll().size(); + } + }); WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode); WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays @@ -556,7 +639,21 @@ public class WorkReportServiceTest { assertThat( instanceConstraintViolationsListDTO.instanceConstraintViolationsList .size(), equalTo(0)); - List workReports = workReportDAO.getAll(); + List workReports = transactionService + .runOnTransaction(new IOnTransaction>() { + @Override + public List execute() { + List list = workReportDAO.getAll(); + for (WorkReport workReport : list) { + Set workReportLines = workReport + .getWorkReportLines(); + for (WorkReportLine line : workReportLines) { + line.getNumHours(); + } + } + return list; + } + }); assertThat(workReports.size(), equalTo(previous + 1)); Set workReportLines = workReports.get(previous)