From b21342ee6754ac16b23c502a61b647ddeee07830 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Fri, 11 May 2012 18:59:31 +0100 Subject: [PATCH] fixes the test ReportAdvancesServiceTest FEA: ItEr76S21UpdateEndDateToCustomer --- .../ReportAdvancesServiceTest.java | 328 +++++++++++------- 1 file changed, 212 insertions(+), 116 deletions(-) diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java index 9cc1104c1..c78df2c6a 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java @@ -195,11 +195,11 @@ public class ReportAdvancesServiceTest { public void validAdvancesReport() { Order order = givenOrder(); String orderElementCode = order.getChildren().get(0).getCode(); - + final ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); Map values = givenValidMapValues(1, 0, BigDecimal.ZERO); OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO( - orderElementCode, values); + orderElementCode, values, externalCompany); reportAdvancesService.updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); Order foundOrder = orderDAO.findExistingEntity(order.getId()); @@ -225,131 +225,214 @@ public class ReportAdvancesServiceTest { @Test public void validAdvancesReportToSubcontratedOrderElement() { - int previousCommunications = subcontractorCommunicationDAO.getAll().size(); - - OrderLine orderLine = createOrderLine(); - - String orderElementCode = orderLine.getCode(); - - Map values = givenValidMapValues(1, 0, BigDecimal.ZERO); - - OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO( - orderElementCode, values); - reportAdvancesService.updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); + final OrderLine orderLine = createOrderLine(); + final ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); + final String orderElementCode = orderLine.getCode(); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { Order foundOrder = orderDAO.findExistingEntity(orderLine.getOrder().getId()); assertNotNull(foundOrder); assertThat(foundOrder.getChildren().size(), equalTo(1)); OrderElement orderElement = foundOrder.getChildren().get(0); assertNotNull(orderElement); + return null; + } + }); - DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement - .getDirectAdvanceAssignmentSubcontractor(); - assertNotNull(directAdvanceAssignmentSubcontractor); - assertTrue(directAdvanceAssignmentSubcontractor.getReportGlobalAdvance()); - assertThat(directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), equalTo(1)); + final int previousCommunications = subcontractorCommunicationDAO.getAll().size(); + final Map values = givenValidMapValues(1, 0, BigDecimal.ZERO); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO(orderElementCode, values, externalCompany); + reportAdvancesService.updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); + return null; + } + }); - for (Entry entry : values.entrySet()) { - AdvanceMeasurement advanceMeasurement = directAdvanceAssignmentSubcontractor - .getAdvanceMeasurements().first(); - assertThat(advanceMeasurement.getDate(), equalTo(entry.getKey())); - assertThat(advanceMeasurement.getValue(), equalTo(entry.getValue())); - } + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { - int currentCommunications = subcontractorCommunicationDAO.getAll().size(); - assertThat((previousCommunications + 1), equalTo(currentCommunications)); + OrderElement orderElement; + try { + orderElement = orderElementDAO.findByCode(orderElementCode); + DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement + .getDirectAdvanceAssignmentSubcontractor(); + assertNotNull(directAdvanceAssignmentSubcontractor); + assertTrue(directAdvanceAssignmentSubcontractor.getReportGlobalAdvance()); + assertThat( + directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), + equalTo(1)); + + for (Entry entry : values.entrySet()) { + AdvanceMeasurement advanceMeasurement = directAdvanceAssignmentSubcontractor + .getAdvanceMeasurements().first(); + assertThat(advanceMeasurement.getDate(), equalTo(entry.getKey())); + assertThat(advanceMeasurement.getValue(), equalTo(entry.getValue())); + } + + int currentCommunications = subcontractorCommunicationDAO.getAll().size(); + assertThat((previousCommunications + 1), equalTo(currentCommunications)); + } catch (InstanceNotFoundException e) { + throw new RuntimeException(); + } + return null; + } + }); } @Test public void validEndDateReportToSubcontratedOrderElement() { - int previousCommunications = subcontractorCommunicationDAO.getAll().size(); + final OrderLine orderLine = createOrderLine(); + final ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); + final String orderElementCode = orderLine.getCode(); - OrderLine orderLine = createOrderLine(); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + Order foundOrder = orderDAO.findExistingEntity(orderLine.getOrder().getId()); + assertNotNull(foundOrder); + assertThat(foundOrder.getChildren().size(), equalTo(1)); - String orderElementCode = orderLine.getCode(); + OrderElement orderElement = foundOrder.getChildren().get(0); + assertNotNull(orderElement); + + return null; + } + }); Map values = givenValidMapValues(1, 0, BigDecimal.ZERO); + final int previousCommunications = this.getNumSubcontractorCommunications(); - OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsOrEndDateListDTO = givenOrderWithEndDateListDTO(orderElementCode); - reportAdvancesService - .updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsOrEndDateListDTO); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsOrEndDateListDTO = givenOrderWithEndDateListDTO( + orderElementCode, externalCompany); + reportAdvancesService + .updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsOrEndDateListDTO); + return null; + } + }); - Order foundOrder = orderDAO.findExistingEntity(orderLine.getOrder().getId()); - assertNotNull(foundOrder); - assertThat(foundOrder.getChildren().size(), equalTo(1)); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + OrderElement orderElement; + try { + orderElement = orderElementDAO.findByCode(orderElementCode); - OrderElement orderElement = foundOrder.getChildren().get(0); - assertNotNull(orderElement); + assertNotNull(orderElement); + DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement + .getDirectAdvanceAssignmentSubcontractor(); + assertNull(directAdvanceAssignmentSubcontractor); - DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement - .getDirectAdvanceAssignmentSubcontractor(); - assertNull(directAdvanceAssignmentSubcontractor); + int currentCommunications = subcontractorCommunicationDAO.getAll().size(); + assertThat((previousCommunications + 1), equalTo(currentCommunications)); - int currentCommunications = subcontractorCommunicationDAO.getAll().size(); - assertThat((previousCommunications + 1), equalTo(currentCommunications)); + Task task = (Task) orderElement.getTaskSource().getTask(); + SubcontractedTaskData subcontractedTaskData = task.getSubcontractedTaskData(); + assertNotNull(subcontractedTaskData); + assertThat(subcontractedTaskData.getEndDatesCommunicatedFromSubcontractor().size(), + equalTo(1)); + } catch (InstanceNotFoundException e) { + throw new RuntimeException(); + } + return null; + } + }); + } - Task task = (Task) orderElement.getTaskSource().getTask(); - SubcontractedTaskData subcontractedTaskData = task.getSubcontractedTaskData(); - assertNotNull(subcontractedTaskData); - assertThat(subcontractedTaskData.getEndDatesCommunicatedFromSubcontractor().size(), - equalTo(1)); + private int getNumSubcontractorCommunications() { + return transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Integer execute() { + return subcontractorCommunicationDAO.getAll().size(); + } + }); } @Test public void validAdvancesAndEndDateReportToSubcontratedOrderElement() { - int previousCommunications = subcontractorCommunicationDAO.getAll().size(); + final OrderLine orderLine = createOrderLine(); + final ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); + final String orderElementCode = orderLine.getCode(); - OrderLine orderLine = createOrderLine(); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + Order foundOrder = orderDAO.findExistingEntity(orderLine.getOrder().getId()); + assertNotNull(foundOrder); + assertThat(foundOrder.getChildren().size(), equalTo(1)); - String orderElementCode = orderLine.getCode(); + OrderElement orderElement = foundOrder.getChildren().get(0); + assertNotNull(orderElement); + return null; + } + }); - Map values = givenValidMapValues(1, 0, BigDecimal.ZERO); + final int previousCommunications = getNumSubcontractorCommunications(); + final Map values = givenValidMapValues(1, 0, BigDecimal.ZERO); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsAndEndDateListDTO( + orderElementCode, values, externalCompany); + reportAdvancesService + .updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); + return null; + } + }); - OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsAndEndDateListDTO( - orderElementCode, values); - reportAdvancesService.updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + try { + OrderElement orderElement = orderElementDAO.findByCode(orderElementCode); + assertNotNull(orderElement); + DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement + .getDirectAdvanceAssignmentSubcontractor(); + assertNotNull(directAdvanceAssignmentSubcontractor); + assertTrue(directAdvanceAssignmentSubcontractor.getReportGlobalAdvance()); + assertThat( + directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), + equalTo(1)); - Order foundOrder = orderDAO.findExistingEntity(orderLine.getOrder().getId()); - assertNotNull(foundOrder); - assertThat(foundOrder.getChildren().size(), equalTo(1)); + for (Entry entry : values.entrySet()) { + AdvanceMeasurement advanceMeasurement = directAdvanceAssignmentSubcontractor + .getAdvanceMeasurements().first(); + assertThat(advanceMeasurement.getDate(), equalTo(entry.getKey())); + assertThat(advanceMeasurement.getValue(), equalTo(entry.getValue())); + } - OrderElement orderElement = foundOrder.getChildren().get(0); - assertNotNull(orderElement); - - DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement - .getDirectAdvanceAssignmentSubcontractor(); - assertNotNull(directAdvanceAssignmentSubcontractor); - assertTrue(directAdvanceAssignmentSubcontractor.getReportGlobalAdvance()); - assertThat(directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), equalTo(1)); - - for (Entry entry : values.entrySet()) { - AdvanceMeasurement advanceMeasurement = directAdvanceAssignmentSubcontractor - .getAdvanceMeasurements().first(); - assertThat(advanceMeasurement.getDate(), equalTo(entry.getKey())); - assertThat(advanceMeasurement.getValue(), equalTo(entry.getValue())); - } - - int currentCommunications = subcontractorCommunicationDAO.getAll().size(); - assertThat((previousCommunications + 2), equalTo(currentCommunications)); - - Task task = (Task) orderElement.getTaskSource().getTask(); - SubcontractedTaskData subcontractedTaskData = task.getSubcontractedTaskData(); - assertNotNull(subcontractedTaskData); - assertThat(subcontractedTaskData.getEndDatesCommunicatedFromSubcontractor().size(), - equalTo(1)); + int currentCommunications = subcontractorCommunicationDAO.getAll().size(); + assertThat((previousCommunications + 2), equalTo(currentCommunications)); + Task task = (Task) orderElement.getTaskSource().getTask(); + SubcontractedTaskData subcontractedTaskData = task.getSubcontractedTaskData(); + assertNotNull(subcontractedTaskData); + assertThat(subcontractedTaskData.getEndDatesCommunicatedFromSubcontractor() + .size(), equalTo(1)); + } catch (InstanceNotFoundException e) { + throw new RuntimeException(); + } + return null; + } + }); } private OrderElementWithAdvanceMeasurementsOrEndDateListDTO givenOrderElementWithAdvanceMeasurementsAndEndDateListDTO( - String orderElementCode, Map values) { + String orderElementCode, Map values, + ExternalCompany externalCompany) { OrderElementWithAdvanceMeasurementsOrEndDateDTO orderElementWithAdvanceMeasurementsOrEndDateDTO = new OrderElementWithAdvanceMeasurementsOrEndDateDTO(); orderElementWithAdvanceMeasurementsOrEndDateDTO.code = orderElementCode; orderElementWithAdvanceMeasurementsOrEndDateDTO.advanceMeasurements = givenAdvanceMeasurementDTOs(values); - ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); - orderElementWithAdvanceMeasurementsOrEndDateDTO.endDateCommunicationToCustomerDTO = givenEndDateCommunicationToCustomersDTO(); return new OrderElementWithAdvanceMeasurementsOrEndDateListDTO(externalCompany.getNif(), @@ -359,63 +442,76 @@ public class ReportAdvancesServiceTest { @Test public void validAdvancesReportWithSeveralDates() { Order order = givenOrder(); - String orderElementCode = order.getChildren().get(0).getCode(); + final Long idOrder = order.getId(); + final String orderElementCode = order.getChildren().get(0).getCode(); + final ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); - int numMeasures = 3; - Map values = givenValidMapValues(numMeasures, 5, BigDecimal.TEN); + final int numMeasures = 3; + final Map values = givenValidMapValues(numMeasures, 5, + BigDecimal.TEN); assertThat(values.size(), equalTo(numMeasures)); - OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO( - orderElementCode, values); - reportAdvancesService.updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + OrderElementWithAdvanceMeasurementsOrEndDateListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO( + orderElementCode, values, externalCompany); + reportAdvancesService + .updateAdvancesOrEndDate(orderElementWithAdvanceMeasurementsListDTO); + return null; + } + }); - Order foundOrder = orderDAO.findExistingEntity(order.getId()); - assertNotNull(foundOrder); - assertThat(foundOrder.getChildren().size(), equalTo(1)); + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + Order foundOrder = orderDAO.findExistingEntity(idOrder); + assertNotNull(foundOrder); + assertThat(foundOrder.getChildren().size(), equalTo(1)); - OrderElement orderElement = foundOrder.getChildren().get(0); - assertNotNull(orderElement); + OrderElement orderElement = foundOrder.getChildren().get(0); + assertNotNull(orderElement); - DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement - .getDirectAdvanceAssignmentSubcontractor(); - assertNotNull(directAdvanceAssignmentSubcontractor); - assertTrue(directAdvanceAssignmentSubcontractor.getReportGlobalAdvance()); - assertThat(directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), - equalTo(numMeasures)); + DirectAdvanceAssignment directAdvanceAssignmentSubcontractor = orderElement + .getDirectAdvanceAssignmentSubcontractor(); + assertNotNull(directAdvanceAssignmentSubcontractor); + assertTrue(directAdvanceAssignmentSubcontractor.getReportGlobalAdvance()); + assertThat(directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), + equalTo(numMeasures)); - assertThat(directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), - equalTo(values.size())); + assertThat(directAdvanceAssignmentSubcontractor.getAdvanceMeasurements().size(), + equalTo(values.size())); - for (AdvanceMeasurement measure : directAdvanceAssignmentSubcontractor - .getAdvanceMeasurements()) { - assertTrue(values.containsKey(measure.getDate())); - assertTrue(values.containsValue(measure.getValue())); - assertThat(values.get(measure.getDate()), equalTo(measure.getValue())); - } + for (AdvanceMeasurement measure : directAdvanceAssignmentSubcontractor + .getAdvanceMeasurements()) { + assertTrue(values.containsKey(measure.getDate())); + assertTrue(values.containsValue(measure.getValue())); + assertThat(values.get(measure.getDate()), equalTo(measure.getValue())); + } + return null; + } + }); } private OrderElementWithAdvanceMeasurementsOrEndDateListDTO givenOrderElementWithAdvanceMeasurementsListDTO( - String orderElementCode, Map values) { + String orderElementCode, Map values, + ExternalCompany externalCompany) { OrderElementWithAdvanceMeasurementsOrEndDateDTO orderElementWithAdvanceMeasurementsDTO = new OrderElementWithAdvanceMeasurementsOrEndDateDTO(); orderElementWithAdvanceMeasurementsDTO.code = orderElementCode; orderElementWithAdvanceMeasurementsDTO.advanceMeasurements = givenAdvanceMeasurementDTOs(values); - ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); - return new OrderElementWithAdvanceMeasurementsOrEndDateListDTO(externalCompany.getNif(), Arrays.asList(orderElementWithAdvanceMeasurementsDTO)); } private OrderElementWithAdvanceMeasurementsOrEndDateListDTO givenOrderWithEndDateListDTO( - String orderElementCode) { + String orderElementCode, ExternalCompany externalCompany) { OrderElementWithAdvanceMeasurementsOrEndDateDTO orderElementWithAdvanceMeasurementsOrEndDateDTO = new OrderElementWithAdvanceMeasurementsOrEndDateDTO(); orderElementWithAdvanceMeasurementsOrEndDateDTO.code = orderElementCode; orderElementWithAdvanceMeasurementsOrEndDateDTO.advanceMeasurements = new HashSet(); - ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(); - orderElementWithAdvanceMeasurementsOrEndDateDTO.endDateCommunicationToCustomerDTO = givenEndDateCommunicationToCustomersDTO(); return new OrderElementWithAdvanceMeasurementsOrEndDateListDTO(externalCompany.getNif(), @@ -479,7 +575,7 @@ public class ReportAdvancesServiceTest { orderLine.useSchedulingDataFor(version); order.add(orderLine); orderLine.setCode(UUID.randomUUID().toString()); - orderLine.setName("Order line name"); + orderLine.setName("Order line name" + UUID.randomUUID().toString()); orderDAO.save(order); orderDAO.flush();