public static EntityIndependentValueSelector mockEntityIndependentValueSelector( GenuineVariableDescriptor variableDescriptor, Object... values) { EntityIndependentValueSelector valueSelector = mock(EntityIndependentValueSelector.class); when(valueSelector.getVariableDescriptor()).thenReturn(variableDescriptor); final List<Object> valueList = Arrays.<Object>asList(values); when(valueSelector.iterator(any())) .thenAnswer( new Answer<Iterator<Object>>() { @Override public Iterator<Object> answer(InvocationOnMock invocation) throws Throwable { return valueList.iterator(); } }); when(valueSelector.endingIterator(any())) .thenAnswer( new Answer<Iterator<Object>>() { @Override public Iterator<Object> answer(InvocationOnMock invocation) throws Throwable { return valueList.iterator(); } }); when(valueSelector.iterator()) .thenAnswer( new Answer<Iterator<Object>>() { @Override 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()); when(valueSelector.getSize()).thenReturn((long) valueList.size()); return valueSelector; }
public ProbabilityValueSelector( EntityIndependentValueSelector childValueSelector, SelectionCacheType cacheType, SelectionProbabilityWeightFactory probabilityWeightFactory) { this.childValueSelector = childValueSelector; this.cacheType = cacheType; this.probabilityWeightFactory = probabilityWeightFactory; if (childValueSelector.isNeverEnding()) { throw new IllegalStateException( "The selector (" + this + ") has a childValueSelector (" + childValueSelector + ") with neverEnding (" + childValueSelector.isNeverEnding() + ")."); } phaseLifecycleSupport.addEventListener(childValueSelector); if (cacheType.isNotCached()) { throw new IllegalArgumentException( "The selector (" + this + ") does not support the cacheType (" + cacheType + ")."); } phaseLifecycleSupport.addEventListener(new SelectionCacheLifecycleBridge(cacheType, this)); }
public GenuineVariableDescriptor getVariableDescriptor() { return childValueSelector.getVariableDescriptor(); }