Add method to multiply a Capacity

FEA: ItEr71S07FragmentationDeletionItEr70S09
This commit is contained in:
Óscar González Fernández 2011-02-22 15:35:07 +01:00
parent 226f37d1d8
commit 3c8d4e9f49
2 changed files with 35 additions and 0 deletions

View file

@ -155,4 +155,11 @@ public class Capacity {
|| !getAllowedExtraEffort().isZero();
}
public Capacity multiplyBy(int capacity) {
Validate.isTrue(capacity >= 0);
return new Capacity(standardEffort.multiplyBy(capacity),
allowedExtraEffort == null ? null
: allowedExtraEffort.multiplyBy(capacity));
}
}

View file

@ -21,10 +21,12 @@ package org.navalplanner.business.test.calendars.entities;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.navalplanner.business.workingday.EffortDuration.hours;
import static org.navalplanner.business.workingday.EffortDuration.zero;
import org.junit.Test;
import org.navalplanner.business.calendars.entities.Capacity;
@ -108,4 +110,30 @@ public class CapacityTest {
Capacity capacity = Capacity.zero().overAssignableWithoutLimit(true);
assertTrue(capacity.allowsWorking());
}
@Test(expected = IllegalArgumentException.class)
public void aCapacityCannotBeMultipliedByANegativeNumber() {
Capacity.create(hours(8)).multiplyBy(-1);
}
@Test
public void aCapacityMultipliedByZero() {
Capacity[] originals = {
Capacity.create(hours(8)).overAssignableWithoutLimit(true),
Capacity.create(hours(8)).overAssignableWithoutLimit(false) };
for (Capacity original : originals) {
Capacity multipliedByZero = original.multiplyBy(0);
assertThat(multipliedByZero.getStandardEffort(), equalTo(zero()));
assertEquals(original.isOverAssignableWithoutLimit(),
multipliedByZero.isOverAssignableWithoutLimit());
}
}
@Test
public void multiplyingMultipliesTheStandardEffortAndTheOverTimeEffort() {
Capacity capacity = Capacity.create(hours(8)).extraEffort(hours(2));
Capacity multiplied = capacity.multiplyBy(2);
assertThat(multiplied.getStandardEffort(), equalTo(hours(16)));
assertThat(multiplied.getAllowedExtraEffort(), equalTo(hours(4)));
}
}