ItEr60S04ValidacionEProbasFuncionaisItEr59S04 : Fixing bug in Order Service.

it shows the error messages when the importation is incorrect.
This commit is contained in:
Susana Montes Pedreira 2010-07-09 11:39:56 +02:00 committed by Javier Moran Rua
parent de9c2cd55f
commit 32af27067b
14 changed files with 144 additions and 86 deletions

View file

@ -50,6 +50,7 @@ import org.navalplanner.ws.common.api.InstanceConstraintViolationsDTO;
import org.navalplanner.ws.common.api.InstanceConstraintViolationsListDTO;
import org.navalplanner.ws.common.api.OrderElementDTO;
import org.navalplanner.ws.common.impl.ConfigurationOrderElementConverter;
import org.navalplanner.ws.common.impl.DateConverter;
import org.navalplanner.ws.common.impl.OrderElementConverter;
import org.navalplanner.ws.common.impl.Util;
import org.navalplanner.ws.subcontract.api.SubcontractedTaskDataDTO;
@ -211,8 +212,10 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
private void overrideDateInformationForRootNode(
OrderElementDTO orderElementDTO, Task task) {
orderElementDTO.initDate = task.getStartDate();
orderElementDTO.deadline = task.getEndDate();
orderElementDTO.initDate = DateConverter.toXMLGregorianCalendar(task
.getStartDate());
orderElementDTO.deadline = DateConverter.toXMLGregorianCalendar(task
.getEndDate());
}
private ConfigurationOrderElementConverter getConfiguration(

View file

@ -21,9 +21,9 @@
package org.navalplanner.ws.common.api;
import java.math.BigDecimal;
import java.util.Date;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.datatype.XMLGregorianCalendar;
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
@ -35,7 +35,7 @@ import org.navalplanner.business.advance.entities.AdvanceMeasurement;
public class AdvanceMeasurementDTO {
@XmlAttribute
public Date date;
public XMLGregorianCalendar date;
@XmlAttribute
public BigDecimal value;
@ -43,7 +43,7 @@ public class AdvanceMeasurementDTO {
public AdvanceMeasurementDTO() {
}
public AdvanceMeasurementDTO(Date date, BigDecimal value) {
public AdvanceMeasurementDTO(XMLGregorianCalendar date, BigDecimal value) {
this.date = date;
this.value = value;
}

View file

@ -21,9 +21,9 @@
package org.navalplanner.ws.common.api;
import java.math.BigDecimal;
import java.util.Date;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.datatype.XMLGregorianCalendar;
import org.navalplanner.business.materials.entities.MaterialAssignment;
@ -44,13 +44,13 @@ public class MaterialAssignmentDTO {
public BigDecimal unitPrice;
@XmlAttribute(name = "estimated-availability")
public Date estimatedAvailability;
public XMLGregorianCalendar estimatedAvailability;
public MaterialAssignmentDTO() {
}
public MaterialAssignmentDTO(String materialCode, Double units,
BigDecimal unitPrice, Date estimatedAvailability) {
BigDecimal unitPrice, XMLGregorianCalendar estimatedAvailability) {
this.materialCode = materialCode;
this.units = units;
this.unitPrice = unitPrice;

View file

@ -20,11 +20,11 @@
package org.navalplanner.ws.common.api;
import java.util.Date;
import java.util.List;
import java.util.Set;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.datatype.XMLGregorianCalendar;
import org.navalplanner.business.orders.entities.Order;
@ -48,7 +48,8 @@ public class OrderDTO extends OrderLineGroupDTO {
super();
}
public OrderDTO(String name, String code, Date initDate, Date deadline,
public OrderDTO(String name, String code, XMLGregorianCalendar initDate,
XMLGregorianCalendar deadline,
String description, Set<LabelReferenceDTO> labels,
Set<MaterialAssignmentDTO> materialAssignments,
Set<AdvanceMeasurementDTO> advanceMeasurements,

View file

@ -20,7 +20,6 @@
package org.navalplanner.ws.common.api;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
@ -28,6 +27,7 @@ import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.datatype.XMLGregorianCalendar;
import org.navalplanner.business.orders.entities.OrderElement;
@ -45,10 +45,10 @@ public class OrderElementDTO extends IntegrationEntityDTO {
public String name;
@XmlAttribute(name = "init-date")
public Date initDate;
public XMLGregorianCalendar initDate;
@XmlAttribute
public Date deadline;
public XMLGregorianCalendar deadline;
@XmlAttribute
public String description;
@ -74,8 +74,9 @@ public class OrderElementDTO extends IntegrationEntityDTO {
public OrderElementDTO() {
}
public OrderElementDTO(String name, String code, Date initDate,
Date deadline, String description, Set<LabelReferenceDTO> labels,
public OrderElementDTO(String name, String code,
XMLGregorianCalendar initDate, XMLGregorianCalendar deadline,
String description, Set<LabelReferenceDTO> labels,
Set<MaterialAssignmentDTO> materialAssignments,
Set<AdvanceMeasurementDTO> advanceMeasurements,
Set<CriterionRequirementDTO> criterionRequirements) {

View file

@ -20,13 +20,13 @@
package org.navalplanner.ws.common.api;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.datatype.XMLGregorianCalendar;
import org.navalplanner.business.orders.entities.OrderLine;
@ -46,7 +46,8 @@ public class OrderLineDTO extends OrderElementDTO {
super();
}
public OrderLineDTO(String name, String code, Date initDate, Date deadline,
public OrderLineDTO(String name, String code,
XMLGregorianCalendar initDate, XMLGregorianCalendar deadline,
String description, Set<LabelReferenceDTO> labels,
Set<MaterialAssignmentDTO> materialAssignments,
Set<AdvanceMeasurementDTO> advanceMeasurements,

View file

@ -21,7 +21,6 @@
package org.navalplanner.ws.common.api;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
@ -29,6 +28,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.datatype.XMLGregorianCalendar;
import org.navalplanner.business.orders.entities.OrderLineGroup;
@ -51,8 +51,9 @@ public class OrderLineGroupDTO extends OrderElementDTO {
super();
}
public OrderLineGroupDTO(String name, String code, Date initDate,
Date deadline, String description, Set<LabelReferenceDTO> labels,
public OrderLineGroupDTO(String name, String code,
XMLGregorianCalendar initDate, XMLGregorianCalendar deadline,
String description, Set<LabelReferenceDTO> labels,
Set<MaterialAssignmentDTO> materialAssignments,
Set<AdvanceMeasurementDTO> advanceMeasurements,
Set<CriterionRequirementDTO> criterionRequirements,

View file

@ -29,6 +29,9 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import javax.xml.datatype.XMLGregorianCalendar;
import org.apache.commons.lang.Validate;
import org.joda.time.LocalDate;
@ -85,8 +88,10 @@ public final class OrderElementConverter {
ConfigurationOrderElementConverter configuration) {
String name = orderElement.getName();
String code = orderElement.getCode();
Date initDate = orderElement.getInitDate();
Date deadline = orderElement.getDeadline();
XMLGregorianCalendar initDate = DateConverter
.toXMLGregorianCalendar(orderElement.getInitDate());
XMLGregorianCalendar deadline = DateConverter
.toXMLGregorianCalendar(orderElement.getDeadline());
String description = orderElement.getDescription();
Set<LabelReferenceDTO> labels = new HashSet<LabelReferenceDTO>();
@ -196,17 +201,21 @@ public final class OrderElementConverter {
value = advanceMeasurement.getValue().divide(maxValue,
RoundingMode.DOWN);
}
Date date = advanceMeasurement.getDate().toDateTimeAtStartOfDay()
.toDate();
XMLGregorianCalendar date = DateConverter
.toXMLGregorianCalendar(advanceMeasurement.getDate());
return new AdvanceMeasurementDTO(date, value);
}
public final static MaterialAssignmentDTO toDTO(
MaterialAssignment materialAssignment) {
XMLGregorianCalendar estimatedAvailability = DateConverter
.toXMLGregorianCalendar(materialAssignment
.getEstimatedAvailability());
return new MaterialAssignmentDTO(materialAssignment.getMaterial()
.getCode(), materialAssignment.getUnits(), materialAssignment
.getUnitPrice(), materialAssignment.getEstimatedAvailability());
.getUnitPrice(), estimatedAvailability);
}
public final static HoursGroupDTO toDTO(HoursGroup hoursGroup,
@ -281,9 +290,13 @@ public final class OrderElementConverter {
DirectCriterionRequirement directCriterionRequirement = getDirectCriterionRequirementByCriterion(
criterionRequirable, criterion);
if (directCriterionRequirement == null) {
criterionRequirable
try {
criterionRequirable
.addCriterionRequirement(DirectCriterionRequirement
.create(criterion));
} catch (IllegalStateException e) {
throw new ValidationException(e.getMessage());
}
}
} else { // criterionRequirementDTO instanceof
// IndirectCriterionRequirementDTO
@ -296,6 +309,16 @@ public final class OrderElementConverter {
}
}
}
} else {
if (criterionRequirementDTO.name == null
|| criterionRequirementDTO.type == null) {
throw new ValidationException(
"the criterion format is incorrect");
} else {
throw new ValidationException("the criterion "
+ criterionRequirementDTO.name + " which type is "
+ criterionRequirementDTO.type + " not found");
}
}
}
}
@ -339,7 +362,6 @@ public final class OrderElementConverter {
&& (!((OrderLineDTO) orderElementDTO).hoursGroups.isEmpty())) {
orderElement = OrderLine
.createUnvalidated(orderElementDTO.code);
for (HoursGroupDTO hoursGroupDTO : ((OrderLineDTO) orderElementDTO).hoursGroups) {
HoursGroup hoursGroup = toEntity(hoursGroupDTO,
configuration);
@ -349,6 +371,10 @@ public final class OrderElementConverter {
orderElement = OrderLine
.createUnvalidatedWithUnfixedPercentage(
orderElementDTO.code, 0);
if (!orderElement.getHoursGroups().isEmpty()) {
orderElement.getHoursGroups().get(0).setCode(
UUID.randomUUID().toString());
}
}
} else { // orderElementDTO instanceof OrderLineGroupDTO
@ -387,8 +413,10 @@ public final class OrderElementConverter {
orderElement.setName(orderElementDTO.name);
orderElement.setCode(orderElementDTO.code);
orderElement.setInitDate(orderElementDTO.initDate);
orderElement.setDeadline(orderElementDTO.deadline);
orderElement
.setInitDate(DateConverter.toDate(orderElementDTO.initDate));
orderElement
.setDeadline(DateConverter.toDate(orderElementDTO.deadline));
orderElement.setDescription(orderElementDTO.description);
if (configuration.isLabels()) {
@ -457,6 +485,7 @@ public final class OrderElementConverter {
*/
material.validate();
Registry.getMaterialDAO().save(material);
material.dontPoseAsTransientObjectAnymore();
}
MaterialAssignment materialAssignment = MaterialAssignment
@ -465,8 +494,11 @@ public final class OrderElementConverter {
.setUnitsWithoutNullCheck(materialAssignmentDTO.units);
materialAssignment
.setUnitPriceWithoutNullCheck(materialAssignmentDTO.unitPrice);
materialAssignment
.setEstimatedAvailability(materialAssignmentDTO.estimatedAvailability);
Date estimatedAvailability = DateConverter
.toDate(materialAssignmentDTO.estimatedAvailability);
materialAssignment.setEstimatedAvailability(estimatedAvailability);
return materialAssignment;
}
@ -576,10 +608,13 @@ public final class OrderElementConverter {
for (LabelReferenceDTO labelDTO : orderElementDTO.labels) {
if (!orderElement.containsLabel(labelDTO.code)) {
try {
orderElement.addLabel(LabelReferenceConverter.toEntity(labelDTO));
orderElement.addLabel(LabelReferenceConverter
.toEntity(labelDTO));
} catch (InstanceNotFoundException e) {
throw new ValidationException("Label " + labelDTO.code
+ " not found");
} catch (IllegalArgumentException e) {
throw new ValidationException(e.getMessage());
}
}
}
@ -609,11 +644,13 @@ public final class OrderElementConverter {
}
if (orderElementDTO.initDate != null) {
orderElement.setInitDate(orderElementDTO.initDate);
orderElement.setInitDate(DateConverter
.toDate(orderElementDTO.initDate));
}
if (orderElementDTO.deadline != null) {
orderElement.setDeadline(orderElementDTO.deadline);
orderElement.setDeadline(DateConverter
.toDate(orderElementDTO.deadline));
}
if (orderElementDTO.description != null) {
@ -655,8 +692,9 @@ public final class OrderElementConverter {
materialAssignment.setUnitPrice(materialAssignmentDTO.unitPrice);
}
if (materialAssignmentDTO.estimatedAvailability != null) {
materialAssignment
.setEstimatedAvailability(materialAssignmentDTO.estimatedAvailability);
Date estimatedAvailability = DateConverter
.toDate(materialAssignmentDTO.estimatedAvailability);
materialAssignment.setEstimatedAvailability(estimatedAvailability);
}
}
@ -669,7 +707,8 @@ public final class OrderElementConverter {
AdvanceMeasurement advanceMeasurement = null;
LocalDate date = null;
if (advanceMeasurementDTO.date != null) {
date = new LocalDate(advanceMeasurementDTO.date);
date = new LocalDate(DateConverter
.toLocalDate(advanceMeasurementDTO.date));
advanceMeasurement = directAdvanceAssignment
.getAdvanceMeasurementAtExactDate(date);
}
@ -709,17 +748,17 @@ public final class OrderElementConverter {
public static AdvanceMeasurement toEntity(
AdvanceMeasurementDTO advanceMeasurementDTO) {
AdvanceMeasurement advanceMeasurement = AdvanceMeasurement.create(
LocalDate
.fromDateFields(advanceMeasurementDTO.date),
LocalDate date = DateConverter.toLocalDate(advanceMeasurementDTO.date);
AdvanceMeasurement advanceMeasurement = AdvanceMeasurement.create(date,
advanceMeasurementDTO.value);
return advanceMeasurement;
}
public static AdvanceMeasurementDTO toDTO(
AdvanceMeasurement advanceMeasurement) {
return new AdvanceMeasurementDTO(advanceMeasurement.getDate()
.toDateTimeAtStartOfDay().toDate(), advanceMeasurement
XMLGregorianCalendar date = DateConverter
.toXMLGregorianCalendar(advanceMeasurement.getDate());
return new AdvanceMeasurementDTO(date, advanceMeasurement
.getValue());
}

View file

@ -31,7 +31,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.apache.commons.lang.StringUtils;
import org.joda.time.LocalDate;
import org.navalplanner.business.advance.bootstrap.PredefinedAdvancedTypes;
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
@ -47,6 +46,7 @@ import org.navalplanner.ws.common.api.AdvanceMeasurementDTO;
import org.navalplanner.ws.common.api.InstanceConstraintViolationsDTO;
import org.navalplanner.ws.common.api.InstanceConstraintViolationsListDTO;
import org.navalplanner.ws.common.impl.ConstraintViolationConverter;
import org.navalplanner.ws.common.impl.DateConverter;
import org.navalplanner.ws.common.impl.OrderElementConverter;
import org.navalplanner.ws.common.impl.Util;
import org.navalplanner.ws.subcontract.api.IReportAdvancesService;
@ -148,8 +148,8 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
for (AdvanceMeasurementDTO advanceMeasurementDTO : orderElementWithAdvanceMeasurementsDTO.advanceMeasurements) {
AdvanceMeasurement advanceMeasurement = advanceAssignmentSubcontractor
.getAdvanceMeasurement(LocalDate
.fromDateFields(advanceMeasurementDTO.date));
.getAdvanceMeasurement(DateConverter
.toLocalDate(advanceMeasurementDTO.date));
if (advanceMeasurement == null) {
advanceAssignmentSubcontractor
.addAdvanceMeasurements(OrderElementConverter

View file

@ -138,7 +138,6 @@ public class ScenarioModelTest {
order.add(orderLine);
orderLine.setCode(UUID.randomUUID().toString());
orderLine.setName("order-line-name");
orderDAO.save(order);
orderDAO.flush();
sessionFactory.getCurrentSession().evict(order);

View file

@ -85,6 +85,7 @@ import org.navalplanner.ws.common.api.OrderDTO;
import org.navalplanner.ws.common.api.OrderLineDTO;
import org.navalplanner.ws.common.api.OrderLineGroupDTO;
import org.navalplanner.ws.common.api.ResourceEnumDTO;
import org.navalplanner.ws.common.impl.DateConverter;
import org.navalplanner.ws.orders.api.IOrderElementService;
import org.navalplanner.ws.orders.api.OrderListDTO;
import org.springframework.beans.factory.annotation.Autowired;
@ -252,7 +253,7 @@ public class OrderElementServiceTest {
int previous = orderDAO.getOrders().size();
OrderDTO orderDTO = new OrderDTO();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = orderElementService
@ -278,7 +279,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = orderElementService
@ -296,7 +297,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineDTO orderLineDTO = new OrderLineDTO();
orderDTO.children.add(orderLineDTO);
@ -308,9 +309,8 @@ public class OrderElementServiceTest {
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
.get(0).constraintViolations;
// Mandatory fields: code,infoComponent.code, infoComponent.name, hours
// group code.
assertThat(constraintViolations.size(), equalTo(4));
// Mandatory fields: code,infoComponent.code, infoComponent.name.
assertThat(constraintViolations.size(), equalTo(3));
assertThat(orderDAO.getOrders().size(), equalTo(previous));
}
@ -322,7 +322,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineDTO orderLineDTO = new OrderLineDTO();
orderLineDTO.name = "Order line " + UUID.randomUUID().toString();
@ -356,7 +356,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineDTO orderLineDTO = new OrderLineDTO();
orderLineDTO.name = "Order line " + UUID.randomUUID().toString();
@ -387,7 +387,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineGroupDTO orderLineGroupDTO = new OrderLineGroupDTO();
orderDTO.children.add(orderLineGroupDTO);
@ -414,7 +414,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineGroupDTO orderLineGroupDTO = new OrderLineGroupDTO();
orderLineGroupDTO.name = "Order line group "
@ -444,7 +444,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineGroupDTO orderLineGroupDTO = new OrderLineGroupDTO();
orderLineGroupDTO.name = "Order line group "
@ -484,7 +484,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
MaterialAssignmentDTO materialAssignmentDTO = new MaterialAssignmentDTO();
orderDTO.materialAssignments.add(materialAssignmentDTO);
@ -510,7 +510,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
MaterialAssignmentDTO materialAssignmentDTO = new MaterialAssignmentDTO();
materialAssignmentDTO.materialCode = "material-code "
@ -541,7 +541,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
MaterialAssignmentDTO materialAssignmentDTO = new MaterialAssignmentDTO();
materialAssignmentDTO.materialCode = "material-code "
@ -571,7 +571,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
LabelReferenceDTO labelReferenceDTO = new LabelReferenceDTO();
orderDTO.labels.add(labelReferenceDTO);
@ -595,7 +595,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
LabelReferenceDTO labelReferenceDTO = new LabelReferenceDTO();
labelReferenceDTO.code = labelCode;
@ -621,7 +621,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = "order-code " + UUID.randomUUID().toString();
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
LabelReferenceDTO labelReferenceDTO = new LabelReferenceDTO();
labelReferenceDTO.code = labelCode;
@ -660,7 +660,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
LabelReferenceDTO labelReferenceDTO = new LabelReferenceDTO(labelCode);
orderDTO.labels.add(labelReferenceDTO);
@ -710,7 +710,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
MaterialAssignmentDTO materialAssignmentDTO = new MaterialAssignmentDTO(
materialcode1, 100.0, BigDecimal.TEN, null);
@ -769,7 +769,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
OrderLineDTO orderLineDTO = new OrderLineDTO();
orderLineDTO.name = "Order line " + UUID.randomUUID().toString();
@ -842,7 +842,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
AdvanceMeasurementDTO advanceMeasurementDTO = new AdvanceMeasurementDTO();
orderDTO.advanceMeasurements.add(advanceMeasurementDTO);
@ -884,10 +884,11 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
AdvanceMeasurementDTO advanceMeasurementDTO = new AdvanceMeasurementDTO(
new Date(), BigDecimal.TEN);
DateConverter.toXMLGregorianCalendar(new Date()),
BigDecimal.TEN);
orderDTO.advanceMeasurements.add(advanceMeasurementDTO);
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
@ -919,11 +920,12 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
LocalDate date = new LocalDate();
AdvanceMeasurementDTO advanceMeasurementDTO = new AdvanceMeasurementDTO(
date.toDateTimeAtStartOfDay().toDate(), new BigDecimal(15));
DateConverter.toXMLGregorianCalendar(date), new BigDecimal(15));
orderDTO.advanceMeasurements.add(advanceMeasurementDTO);
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
@ -943,7 +945,7 @@ public class OrderElementServiceTest {
sessionFactory.getCurrentSession().evict(orderElement);
AdvanceMeasurementDTO advanceMeasurementDTO2 = new AdvanceMeasurementDTO(
date.plusWeeks(1).toDateTimeAtStartOfDay().toDate(),
DateConverter.toXMLGregorianCalendar(date.plusWeeks(1)),
new BigDecimal(20));
orderDTO.advanceMeasurements.add(advanceMeasurementDTO2);
@ -984,7 +986,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
CriterionRequirementDTO criterionRequirementDTO = new DirectCriterionRequirementDTO();
orderDTO.criterionRequirements.add(criterionRequirementDTO);
@ -992,11 +994,16 @@ public class OrderElementServiceTest {
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = orderElementService
.addOrders(orderListDTO).instanceConstraintViolationsList;
assertThat(instanceConstraintViolationsList.size(), equalTo(0));
OrderElement orderElement = orderElementDAO.findUniqueByCode(code);
assertNotNull(orderElement);
assertThat(orderElement.getCriterionRequirements().size(), equalTo(0));
// the criterion format is incorrect because its name and type is empty.
assertThat(instanceConstraintViolationsList.size(), equalTo(1));
try {
OrderElement orderElement = orderElementDAO.findUniqueByCode(code);
fail("Order shouldn't be stored");
} catch (InstanceNotFoundException e) {
// It should throw an exception
}
}
@Test
@ -1014,7 +1021,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
String type = PredefinedCriterionTypes.LEAVE.getName();
@ -1048,7 +1055,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
String type = PredefinedCriterionTypes.LEAVE.getName();
@ -1099,7 +1106,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
String type = PredefinedCriterionTypes.LEAVE.getName();
@ -1160,7 +1167,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name " + UUID.randomUUID().toString();
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
String type = PredefinedCriterionTypes.LEAVE.getName();
@ -1231,7 +1238,7 @@ public class OrderElementServiceTest {
OrderDTO orderDTO = new OrderDTO();
orderDTO.name = "Order name";
orderDTO.code = code;
orderDTO.initDate = new Date();
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
String type = PredefinedCriterionTypes.LEAVE.getName();

View file

@ -60,6 +60,7 @@ import org.navalplanner.business.scenarios.IScenarioManager;
import org.navalplanner.business.scenarios.entities.OrderVersion;
import org.navalplanner.web.orders.OrderModelTest;
import org.navalplanner.ws.common.api.AdvanceMeasurementDTO;
import org.navalplanner.ws.common.impl.DateConverter;
import org.navalplanner.ws.subcontract.api.IReportAdvancesService;
import org.navalplanner.ws.subcontract.api.OrderElementWithAdvanceMeasurementsDTO;
import org.navalplanner.ws.subcontract.api.OrderElementWithAdvanceMeasurementsListDTO;
@ -182,7 +183,8 @@ public class ReportAdvancesServiceTest {
orderElementWithAdvanceMeasurementsDTO.code = orderElementCode;
Set<AdvanceMeasurementDTO> advanceMeasurementDTOs = new HashSet<AdvanceMeasurementDTO>();
advanceMeasurementDTOs.add(new AdvanceMeasurementDTO(date, value));
advanceMeasurementDTOs.add(new AdvanceMeasurementDTO(DateConverter
.toXMLGregorianCalendar(date), value));
orderElementWithAdvanceMeasurementsDTO.advanceMeasurements = advanceMeasurementDTOs;
ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(

View file

@ -52,6 +52,7 @@ import org.navalplanner.business.scenarios.bootstrap.IScenariosBootstrap;
import org.navalplanner.ws.common.api.InstanceConstraintViolationsDTO;
import org.navalplanner.ws.common.api.OrderElementDTO;
import org.navalplanner.ws.common.api.OrderLineDTO;
import org.navalplanner.ws.common.impl.DateConverter;
import org.navalplanner.ws.subcontract.api.ISubcontractService;
import org.navalplanner.ws.subcontract.api.SubcontractedTaskDataDTO;
import org.springframework.beans.factory.annotation.Autowired;
@ -105,7 +106,8 @@ public class SubcontractServiceTest {
OrderLineDTO orderLineDTO = new OrderLineDTO();
orderLineDTO.name = "Test";
orderLineDTO.code = orderLineCode;
orderLineDTO.initDate = new Date();
orderLineDTO.initDate = DateConverter
.toXMLGregorianCalendar(new Date());
return orderLineDTO;
}

View file

@ -62,6 +62,8 @@
</material-assignments>
<advance-measurements />
<criterion-requirements />
<children />
<children>
<order-line name="orderline B1" code="PREFIX-00022-00001" />
</children>
</order>
</order-list>