ItEr19S15ProbasModuloRecursosItEr14S12: Modified OrderLine creation method in order to create default HoursGroup without fixed percentage.
* navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeModel.java: * navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java: Renamed method "createOrderLineWithUnfixedHours" to "createOrderLineWithUnfixedPercentage". (updateHoursGroups) Fixed problem with HoursGroup no fixed with 0 hours. * navalplanner-business/src/test/java/org/navalplanner/business/test/orders/entities/OrderLineTest.java: (testSetWorkHoursHoursGroupNoFixedZeroValue) Added new test to check a case with two HoursGroup with 0 hours.
This commit is contained in:
parent
3b705a8fc8
commit
82c4e86dae
3 changed files with 43 additions and 6 deletions
|
|
@ -8,11 +8,11 @@ import java.util.Set;
|
|||
|
||||
public class OrderLine extends OrderElement {
|
||||
|
||||
public static OrderLine createOrderLineWithUnfixedHours(int hours) {
|
||||
public static OrderLine createOrderLineWithUnfixedPercentage(int hours) {
|
||||
OrderLine result = new OrderLine();
|
||||
HoursGroup hoursGroup = new HoursGroup();
|
||||
result.addHoursGroup(hoursGroup);
|
||||
hoursGroup.setFixedPercentage(true);
|
||||
hoursGroup.setFixedPercentage(false);
|
||||
hoursGroup.setPercentage(new BigDecimal(1));
|
||||
hoursGroup.setWorkingHours(hours);
|
||||
return result;
|
||||
|
|
@ -155,8 +155,13 @@ public class OrderLine extends OrderElement {
|
|||
Integer newNoFixed = workHours - newTotal;
|
||||
|
||||
for (HoursGroup hoursGroup : noFixedGroups) {
|
||||
Integer newHours = (int) ((float) hoursGroup.getWorkingHours()
|
||||
/ oldNoFixed * newNoFixed);
|
||||
Integer newHours;
|
||||
if (oldNoFixed == 0) {
|
||||
newHours = (int) ((float) newNoFixed / hoursGroups.size());
|
||||
} else {
|
||||
newHours = (int) ((float) hoursGroup.getWorkingHours()
|
||||
/ oldNoFixed * newNoFixed);
|
||||
}
|
||||
hoursGroup.setWorkingHours(newHours);
|
||||
|
||||
newHoursGroups.add(hoursGroup);
|
||||
|
|
|
|||
|
|
@ -580,6 +580,38 @@ public class OrderLineTest {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* An {@link OrderLine} with two {@link HoursGroup} of 0h NO_FIXED. Trying
|
||||
* to set work hours of {@link OrderLine} to 200h. Expected:
|
||||
* {@link OrderLine} with 200h. {@link HoursGroup} with 100h and
|
||||
* {@link HoursGroup} with 100h.
|
||||
*/
|
||||
@Test
|
||||
public void testSetWorkHoursHoursGroupNoFixedZeroValue() {
|
||||
|
||||
OrderLine orderLine = new OrderLine();
|
||||
HoursGroup hoursGroup = new HoursGroup(orderLine);
|
||||
hoursGroup.setWorkingHours(0);
|
||||
HoursGroup hoursGroup2 = new HoursGroup(orderLine);
|
||||
hoursGroup2.setWorkingHours(0);
|
||||
orderLine.addHoursGroup(hoursGroup);
|
||||
orderLine.addHoursGroup(hoursGroup2);
|
||||
|
||||
assertThat(orderLine.getWorkHours(), equalTo(0));
|
||||
|
||||
try {
|
||||
orderLine.setWorkHours(200);
|
||||
} catch (IllegalArgumentException e) {
|
||||
fail("It should not throw an exception");
|
||||
}
|
||||
|
||||
assertThat(orderLine.getWorkHours(), equalTo(200));
|
||||
assertThat(orderLine.getHoursGroups().size(), equalTo(2));
|
||||
assertThat(hoursGroup.getWorkingHours(), equalTo(100));
|
||||
assertThat(hoursGroup2.getWorkingHours(), equalTo(100));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddNewEmptyHoursGroup() {
|
||||
OrderLine orderLine = new OrderLine();
|
||||
|
|
@ -714,7 +746,7 @@ public class OrderLineTest {
|
|||
int[] hoursValues = { 0, 100, 10, 30 };
|
||||
for (int hours : hoursValues) {
|
||||
OrderLine orderLine = OrderLine
|
||||
.createOrderLineWithUnfixedHours(hours);
|
||||
.createOrderLineWithUnfixedPercentage(hours);
|
||||
assertThat(orderLine.getWorkHours(), equalTo(hours));
|
||||
assertThat(orderLine.getHoursGroups().size(), equalTo(1));
|
||||
orderLine.setWorkHours(20);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public class OrderElementTreeModel extends SimpleTreeModel {
|
|||
|
||||
private OrderElement createNewOrderElement() {
|
||||
OrderElement newOrderElement = OrderLine
|
||||
.createOrderLineWithUnfixedHours(0);
|
||||
.createOrderLineWithUnfixedPercentage(0);
|
||||
newOrderElement.setName("New Order Element");
|
||||
return newOrderElement;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue