while (!parameterAssignment.isComplete()) {
List<PotentialAssignment> potentialAssignments = parameterAssignment.potentialsForNextUnassigned();
boolean isFirstSetOfArguments = listOfAssignments.isEmpty();
for (int i = 0; i < potentialAssignments.size(); i++) {
if (isFirstSetOfArguments) {
Assignments assignments = Assignments
.allUnassigned(fTestMethod.getMethod(), getTestClass());
listOfAssignments.add(assignments.assignNext(potentialAssignments.get(i)));
} else {
Assignments assignments = listOfAssignments.get(i);
try {
listOfAssignments.set(i, assignments.assignNext(potentialAssignments.get(i)));
} catch (IndexOutOfBoundsException e) {
listOfAssignments.add(assignments.assignNext(potentialAssignments.get(i)));
}
}
}
parameterAssignment = parameterAssignment.assignNext(null);