[Bug #871] Added more tests checking more constraints.

FEA: ItEr71S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2011-03-02 09:46:06 +01:00
parent 6f02dda4d6
commit 3d2571d362

View file

@ -3037,14 +3037,14 @@ public class CriticalPathCalculatorTest {
* </pre>
*/
private void givenPairOfTasksWithDependencyFirstWithBiggerConstraintAndSecondWithEqualConstraint(
int daysTask1, LocalDate dateConstraintTask1, int daysTask2,
LocalDate dateConstraintTask2) {
int daysTask1, LocalDate dateBiggerOrEqualConstraintTask1,
int daysTask2, LocalDate dateEqualConstraintTask2) {
diagramGraphExample = createNiceMock(ICriticalPathCalculable.class);
ITaskFundamentalProperties task1 = createTaskWithBiggerOrEqualThanConstraint(
START, daysTask1, dateConstraintTask1);
START, daysTask1, dateBiggerOrEqualConstraintTask1);
ITaskFundamentalProperties task2 = createTaskWithEqualConstraint(START,
daysTask2, dateConstraintTask2);
daysTask2, dateEqualConstraintTask2);
List<ITaskFundamentalProperties> listOfTasks = Arrays.asList(task1,
task2);
@ -3115,4 +3115,92 @@ public class CriticalPathCalculatorTest {
assertThat(daysBetweenStartAndEnd(criticalPath.get(0)), equalTo(4));
}
/**
* <pre>
* #### T1 ####
* |---- #### T2 ####
* </pre>
*/
private void givenPairOfTasksWithDependencyBothWithEqualConstraint(
int daysTask1, LocalDate dateEqualConstraintTask1, int daysTask2,
LocalDate dateEqualConstraintTask2) {
diagramGraphExample = createNiceMock(ICriticalPathCalculable.class);
ITaskFundamentalProperties task1 = createTaskWithEqualConstraint(
START, daysTask1, dateEqualConstraintTask1);
ITaskFundamentalProperties task2 = createTaskWithEqualConstraint(START,
daysTask2, dateEqualConstraintTask2);
List<ITaskFundamentalProperties> listOfTasks = Arrays.asList(task1,
task2);
expect(diagramGraphExample.getTasks()).andReturn(listOfTasks)
.anyTimes();
expect(diagramGraphExample.getInitialTasks()).andReturn(
Arrays.asList(task1)).anyTimes();
expect(diagramGraphExample.getLatestTasks()).andReturn(
Arrays.asList(task2)).anyTimes();
expect(
diagramGraphExample.getDependencyFrom(
isA(ITaskFundamentalProperties.class),
isA(ITaskFundamentalProperties.class))).andReturn(null)
.anyTimes();
expect(diagramGraphExample.getIncomingTasksFor(task1)).andReturn(
new HashSet<ITaskFundamentalProperties>()).anyTimes();
expect(diagramGraphExample.getIncomingTasksFor(task2)).andReturn(
new HashSet<ITaskFundamentalProperties>(Arrays.asList(task1)))
.anyTimes();
expect(diagramGraphExample.getOutgoingTasksFor(task1)).andReturn(
new HashSet<ITaskFundamentalProperties>(Arrays.asList(task2)))
.anyTimes();
expect(diagramGraphExample.getOutgoingTasksFor(task2)).andReturn(
new HashSet<ITaskFundamentalProperties>()).anyTimes();
addTaskMethods(listOfTasks);
replay(diagramGraphExample);
}
@Test
public void examplePairOfTasksWithDependencyBothWithEqualConstraint1() {
givenPairOfTasksWithDependencyBothWithEqualConstraint(
6, START.plusDays(2), 4, START);
List<ITaskFundamentalProperties> criticalPath = buildCalculator()
.calculateCriticalPath(diagramGraphExample);
assertThat(criticalPath.size(), equalTo(2));
for (ITaskFundamentalProperties task : criticalPath) {
assertThat(daysBetweenStartAndEnd(task), anyOf(equalTo(6),
equalTo(4)));
}
}
@Test
public void examplePairOfTasksWithDependencyBothWithEqualConstraint2() {
givenPairOfTasksWithDependencyBothWithEqualConstraint(
6, START, 4, START.plusDays(5));
List<ITaskFundamentalProperties> criticalPath = buildCalculator()
.calculateCriticalPath(diagramGraphExample);
assertThat(criticalPath.size(), equalTo(2));
for (ITaskFundamentalProperties task : criticalPath) {
assertThat(daysBetweenStartAndEnd(task), anyOf(equalTo(6),
equalTo(4)));
}
}
@Test
public void examplePairOfTasksWithDependencyBothWithEqualConstraint3() {
givenPairOfTasksWithDependencyBothWithEqualConstraint(
6, START, 4, START.plusDays(10));
List<ITaskFundamentalProperties> criticalPath = buildCalculator()
.calculateCriticalPath(diagramGraphExample);
assertThat(criticalPath.size(), equalTo(2));
for (ITaskFundamentalProperties task : criticalPath) {
assertThat(daysBetweenStartAndEnd(task), anyOf(equalTo(6),
equalTo(4)));
}
}
}