[Bug #668] Fix bug
It checks if the order elements have got code before importing them. FEA : ItEr64S03BugFixing
This commit is contained in:
parent
d3dd859411
commit
d22918385b
2 changed files with 103 additions and 10 deletions
|
|
@ -266,11 +266,20 @@ public final class OrderElementConverter {
|
|||
return orderElement;
|
||||
}
|
||||
|
||||
private static void checkOrderElementDTOCode(
|
||||
OrderElementDTO orderElementDTO,
|
||||
String instance) {
|
||||
if (orderElementDTO.code == null) {
|
||||
throw new ValidationException(instance + _(": code not found"));
|
||||
}
|
||||
}
|
||||
|
||||
private static void addOrCriterionRequirements(OrderElement orderElement,
|
||||
OrderElementDTO orderElementDTO) {
|
||||
addOrCriterionRequirementsEntities(orderElement,
|
||||
orderElementDTO.criterionRequirements);
|
||||
|
||||
if (orderElement != null) {
|
||||
if (orderElementDTO instanceof OrderLineDTO) {
|
||||
for (HoursGroupDTO hoursGroupDTO : ((OrderLineDTO) orderElementDTO).hoursGroups) {
|
||||
HoursGroup hoursGroup = ((OrderLine) orderElement)
|
||||
|
|
@ -287,6 +296,7 @@ public final class OrderElementConverter {
|
|||
addOrCriterionRequirements(child, childDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void addOrCriterionRequirementsEntities(
|
||||
|
|
@ -369,6 +379,7 @@ public final class OrderElementConverter {
|
|||
OrderElement orderElement;
|
||||
|
||||
if (orderElementDTO instanceof OrderLineDTO) {
|
||||
checkOrderElementDTOCode(orderElementDTO, "OrderLineDTO");
|
||||
if ((configuration.isHoursGroups())
|
||||
&& (!((OrderLineDTO) orderElementDTO).hoursGroups.isEmpty())) {
|
||||
orderElement = OrderLine
|
||||
|
|
@ -390,6 +401,7 @@ public final class OrderElementConverter {
|
|||
} else { // orderElementDTO instanceof OrderLineGroupDTO
|
||||
|
||||
if (orderElementDTO instanceof OrderDTO) {
|
||||
checkOrderElementDTOCode(orderElementDTO, "OrderDTO");
|
||||
orderElement = Order.createUnvalidated(orderElementDTO.code);
|
||||
Scenario current = Registry.getScenarioManager().getCurrent();
|
||||
((Order) orderElement).setVersionForScenario(current,
|
||||
|
|
@ -407,6 +419,7 @@ public final class OrderElementConverter {
|
|||
}
|
||||
((Order) orderElement).setCalendar(calendar);
|
||||
} else { // orderElementDTO instanceof OrderLineGroupDTO
|
||||
checkOrderElementDTOCode(orderElementDTO, "OrderLineGroupDTO");
|
||||
orderElement = OrderLineGroup
|
||||
.createUnvalidated(orderElementDTO.code);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -133,10 +133,10 @@ public class OrderElementServiceTest {
|
|||
transactionService.runOnAnotherTransaction(new IOnTransaction<Void>() {
|
||||
@Override
|
||||
public Void execute() {
|
||||
configurationBootstrap.loadRequiredData();
|
||||
materialCategoryBootstrap.loadRequiredData();
|
||||
criterionsBootstrap.loadRequiredData();
|
||||
unitTypeBootstrap.loadRequiredData();
|
||||
configurationBootstrap.loadRequiredData();
|
||||
defaultAdvanceTypesBootstrapListener.loadRequiredData();
|
||||
scenariosBootstrap.loadRequiredData();
|
||||
return null;
|
||||
|
|
@ -181,7 +181,7 @@ public class OrderElementServiceTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void invalidOrderWithoutAttributes() {
|
||||
public void invalidOrderWithoutCode() {
|
||||
int previous = orderDAO.getOrders().size();
|
||||
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
|
|
@ -196,10 +196,34 @@ public class OrderElementServiceTest {
|
|||
|
||||
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
|
||||
.get(0).constraintViolations;
|
||||
// Mandatory fields: code, infoComponent.code, infoComponent.name. Check
|
||||
|
||||
assertThat(constraintViolations.size(), equalTo(1));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void invalidOrderWithoutAttributes() {
|
||||
int previous = orderDAO.getOrders().size();
|
||||
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
|
||||
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = orderElementService
|
||||
.addOrders(orderListDTO).instanceConstraintViolationsList;
|
||||
|
||||
assertTrue(instanceConstraintViolationsList.toString(),
|
||||
instanceConstraintViolationsList.size() == 1);
|
||||
assertThat(instanceConstraintViolationsList.size(), equalTo(1));
|
||||
|
||||
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
|
||||
.get(0).constraintViolations;
|
||||
// Mandatory fields: infoComponent.code, infoComponent.name. Check
|
||||
// constraints:
|
||||
// checkConstraintOrderMustHaveStartDate
|
||||
assertThat(constraintViolations.size(), equalTo(4));
|
||||
|
||||
assertThat(constraintViolations.size(), equalTo(2));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
|
@ -228,10 +252,11 @@ public class OrderElementServiceTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void invalidOrderWithoutCodeAndInitDate() {
|
||||
public void invalidOrderWithoutInitDate() {
|
||||
int previous = orderDAO.getOrders().size();
|
||||
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.name = "Order name " + UUID.randomUUID().toString();
|
||||
|
||||
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
|
||||
|
|
@ -243,16 +268,17 @@ public class OrderElementServiceTest {
|
|||
.get(0).constraintViolations;
|
||||
// Mandatory fields: code, infoComponentCode. Check constraints:
|
||||
// checkConstraintOrderMustHaveStartDate
|
||||
assertThat(constraintViolations.size(), equalTo(3));
|
||||
assertThat(constraintViolations.size(), equalTo(1));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void invalidOrderWithoutCodeAndName() {
|
||||
public void invalidOrderWithoutName() {
|
||||
int previous = orderDAO.getOrders().size();
|
||||
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
|
||||
|
|
@ -263,7 +289,7 @@ public class OrderElementServiceTest {
|
|||
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
|
||||
.get(0).constraintViolations;
|
||||
// Mandatory fields: code,infoComponent.code, infoComponent.name
|
||||
assertThat(constraintViolations.size(), equalTo(3));
|
||||
assertThat(constraintViolations.size(), equalTo(1));
|
||||
for (ConstraintViolationDTO constraintViolationDTO : constraintViolations) {
|
||||
assertThat(constraintViolationDTO.fieldName, anyOf(mustEnd("code"),
|
||||
mustEnd("name")));
|
||||
|
|
@ -299,6 +325,32 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
OrderLineDTO orderLineDTO = new OrderLineDTO();
|
||||
orderLineDTO.code = "order-line-code " + UUID.randomUUID().toString();
|
||||
orderDTO.children.add(orderLineDTO);
|
||||
|
||||
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = orderElementService
|
||||
.addOrders(orderListDTO).instanceConstraintViolationsList;
|
||||
assertThat(instanceConstraintViolationsList.size(), equalTo(1));
|
||||
|
||||
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
|
||||
.get(0).constraintViolations;
|
||||
// Mandatory fields: infoComponent.code, infoComponent.name.
|
||||
assertThat(constraintViolations.size(), equalTo(1));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void orderWithOrderLineWithoutCode() {
|
||||
int previous = orderDAO.getOrders().size();
|
||||
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
orderDTO.name = "Order name " + UUID.randomUUID().toString();
|
||||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
OrderLineDTO orderLineDTO = new OrderLineDTO();
|
||||
orderDTO.children.add(orderLineDTO);
|
||||
|
||||
|
|
@ -310,7 +362,7 @@ public class OrderElementServiceTest {
|
|||
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
|
||||
.get(0).constraintViolations;
|
||||
// Mandatory fields: code,infoComponent.code, infoComponent.name.
|
||||
assertThat(constraintViolations.size(), equalTo(3));
|
||||
assertThat(constraintViolations.size(), equalTo(1));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
|
@ -390,6 +442,34 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
OrderLineGroupDTO orderLineGroupDTO = new OrderLineGroupDTO();
|
||||
orderLineGroupDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.children.add(orderLineGroupDTO);
|
||||
|
||||
OrderListDTO orderListDTO = createOrderListDTO(orderDTO);
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = orderElementService
|
||||
.addOrders(orderListDTO).instanceConstraintViolationsList;
|
||||
assertThat(instanceConstraintViolationsList.size(), equalTo(1));
|
||||
|
||||
List<ConstraintViolationDTO> constraintViolations = instanceConstraintViolationsList
|
||||
.get(0).constraintViolations;
|
||||
// Mandatory fields: infoComponent.code, infoComponenet.name. Check
|
||||
// constraints:
|
||||
// checkConstraintAtLeastOneHoursGroupForEachOrderElement
|
||||
assertThat(constraintViolations.size(), equalTo(2));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void orderWithOrderLineGroupWithoutCode() {
|
||||
int previous = orderDAO.getOrders().size();
|
||||
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
orderDTO.name = "Order name " + UUID.randomUUID().toString();
|
||||
orderDTO.code = "order-code " + UUID.randomUUID().toString();
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
OrderLineGroupDTO orderLineGroupDTO = new OrderLineGroupDTO();
|
||||
orderDTO.children.add(orderLineGroupDTO);
|
||||
|
||||
|
|
@ -403,7 +483,7 @@ public class OrderElementServiceTest {
|
|||
// Mandatory fields: code,infoComponent.code, infoComponenet.name. Check
|
||||
// constraints:
|
||||
// checkConstraintAtLeastOneHoursGroupForEachOrderElement
|
||||
assertThat(constraintViolations.size(), equalTo(4));
|
||||
assertThat(constraintViolations.size(), equalTo(1));
|
||||
|
||||
assertThat(orderDAO.getOrders().size(), equalTo(previous));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue