return mockEntitySelector(entityDescriptor, entities);
}
public static EntitySelector mockEntitySelector(PlanningEntityDescriptor entityDescriptor,
Object... entities) {
EntitySelector entitySelector = mock(EntitySelector.class);
when(entitySelector.getEntityDescriptor()).thenReturn(entityDescriptor);
final List<Object> entityList = Arrays.<Object>asList(entities);
when(entitySelector.iterator()).thenAnswer(new Answer<Iterator<Object>>() {
public Iterator<Object> answer(InvocationOnMock invocation) throws Throwable {
return entityList.iterator();
}
});
when(entitySelector.listIterator()).thenAnswer(new Answer<ListIterator<Object>>() {
public ListIterator<Object> answer(InvocationOnMock invocation) throws Throwable {
return entityList.listIterator();
}
});
for (int i = 0; i < entityList.size(); i++) {
final int index = i;
when(entitySelector.listIterator(index)).thenAnswer(new Answer<ListIterator<Object>>() {
public ListIterator<Object> answer(InvocationOnMock invocation) throws Throwable {
return entityList.listIterator(index);
}
});
}
when(entitySelector.isContinuous()).thenReturn(false);
when(entitySelector.isNeverEnding()).thenReturn(false);
when(entitySelector.getSize()).thenReturn((long) entityList.size());
return entitySelector;
}