GenuineVariableDescriptor variableDescriptor = mockVariableDescriptor(entityDescriptor, variableName);
return mockValueSelector(variableDescriptor, values);
}
public static ValueSelector mockValueSelector(GenuineVariableDescriptor variableDescriptor, Object... values) {
ValueSelector valueSelector = mock(ValueSelector.class);
when(valueSelector.getVariableDescriptor()).thenReturn(variableDescriptor);
final List<Object> valueList = Arrays.<Object>asList(values);
when(valueSelector.iterator(any())).thenAnswer(new Answer<Iterator<Object>>() {
public Iterator<Object> answer(InvocationOnMock invocation) throws Throwable {
return valueList.iterator();
}
});
when(valueSelector.isCountable()).thenReturn(true);
when(valueSelector.isNeverEnding()).thenReturn(false);
when(valueSelector.getSize(any())).thenReturn((long) valueList.size());
return valueSelector;
}