/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.function.blacklist; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import java.util.Arrays; import java.util.Collections; import java.util.Set; import org.mockito.Mockito; import org.testng.annotations.Test; import com.opengamma.engine.ComputationTarget; import com.opengamma.engine.ComputationTargetSpecification; import com.opengamma.engine.calcnode.CalculationJobItem; import com.opengamma.engine.function.CompiledFunctionDefinition; import com.opengamma.engine.function.EmptyFunctionParameters; import com.opengamma.engine.function.FunctionParameters; import com.opengamma.engine.function.ParameterizedFunction; import com.opengamma.engine.target.ComputationTargetType; import com.opengamma.engine.test.MockFunction; import com.opengamma.engine.value.ValueSpecification; import com.opengamma.engine.view.ExecutionLogMode; import com.opengamma.id.UniqueId; import com.opengamma.util.test.TestGroup; /** * Tests the {@link MultipleFunctionBlacklistQuery} class. */ @Test(groups = TestGroup.UNIT) public class MultipleFunctionBlacklistQueryTest { private final String _functionIdentifier = "Func"; private final ComputationTarget _target = new ComputationTarget(ComputationTargetType.PRIMITIVE, UniqueId.of("Test", "Test")); private final CompiledFunctionDefinition _function = new MockFunction(_functionIdentifier, _target); private final FunctionParameters _functionParameters = new EmptyFunctionParameters(); private final ParameterizedFunction _parameterizedFunction = new ParameterizedFunction(_function, _functionParameters); private final ComputationTargetSpecification _targetSpecification = _target.toSpecification(); private final Set<ValueSpecification> _inputs = Collections.<ValueSpecification>emptySet(); private final Set<ValueSpecification> _outputs = Collections.<ValueSpecification>emptySet(); private final CalculationJobItem _jobItem = new CalculationJobItem( _functionIdentifier, _functionParameters, _targetSpecification, _inputs, _outputs, ExecutionLogMode.INDICATORS); public void testNone() { final MultipleFunctionBlacklistQuery q = new MultipleFunctionBlacklistQuery(Collections.<FunctionBlacklistQuery>emptySet()); assertFalse(q.isBlacklisted(_jobItem)); assertFalse(q.isBlacklisted(_targetSpecification)); assertFalse(q.isBlacklisted(_parameterizedFunction)); assertFalse(q.isBlacklisted(_parameterizedFunction, _targetSpecification)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters, _targetSpecification)); assertFalse(q.isBlacklisted(_parameterizedFunction, _targetSpecification, _inputs, _outputs)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters, _targetSpecification, _inputs, _outputs)); } public void testOne() { final FunctionBlacklistQuery u = Mockito.mock(FunctionBlacklistQuery.class); final MultipleFunctionBlacklistQuery q = new MultipleFunctionBlacklistQuery(Collections.singleton(u)); Mockito.when(u.isBlacklisted(_jobItem)).thenReturn(Boolean.TRUE); Mockito.when(u.isBlacklisted(_parameterizedFunction)).thenReturn(Boolean.TRUE); Mockito.when(u.isBlacklisted(_functionIdentifier, _functionParameters)).thenReturn(Boolean.TRUE); Mockito.when(u.isBlacklisted(_parameterizedFunction, _targetSpecification, _inputs, _outputs)).thenReturn(Boolean.TRUE); assertTrue(q.isBlacklisted(_jobItem)); assertFalse(q.isBlacklisted(_targetSpecification)); assertTrue(q.isBlacklisted(_parameterizedFunction)); assertFalse(q.isBlacklisted(_parameterizedFunction, _targetSpecification)); assertTrue(q.isBlacklisted(_functionIdentifier, _functionParameters)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters, _targetSpecification)); assertTrue(q.isBlacklisted(_parameterizedFunction, _targetSpecification, _inputs, _outputs)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters, _targetSpecification, _inputs, _outputs)); } public void testTwo() { final FunctionBlacklistQuery u1 = Mockito.mock(FunctionBlacklistQuery.class); final FunctionBlacklistQuery u2 = Mockito.mock(FunctionBlacklistQuery.class); final MultipleFunctionBlacklistQuery q = new MultipleFunctionBlacklistQuery(Arrays.asList(u1, u2)); Mockito.when(u1.isBlacklisted(_jobItem)).thenReturn(Boolean.TRUE); Mockito.when(u2.isBlacklisted(_targetSpecification)).thenReturn(Boolean.TRUE); Mockito.when(u1.isBlacklisted(_parameterizedFunction)).thenReturn(Boolean.TRUE); Mockito.when(u2.isBlacklisted(_parameterizedFunction, _targetSpecification)).thenReturn(Boolean.TRUE); Mockito.when(u1.isBlacklisted(_functionIdentifier, _functionParameters)).thenReturn(Boolean.TRUE); Mockito.when(u1.isBlacklisted(_parameterizedFunction, _targetSpecification, _inputs, _outputs)).thenReturn(Boolean.TRUE); assertTrue(q.isBlacklisted(_jobItem)); assertTrue(q.isBlacklisted(_targetSpecification)); assertTrue(q.isBlacklisted(_parameterizedFunction)); assertTrue(q.isBlacklisted(_parameterizedFunction, _targetSpecification)); assertTrue(q.isBlacklisted(_functionIdentifier, _functionParameters)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters, _targetSpecification)); assertTrue(q.isBlacklisted(_parameterizedFunction, _targetSpecification, _inputs, _outputs)); assertFalse(q.isBlacklisted(_functionIdentifier, _functionParameters, _targetSpecification, _inputs, _outputs)); } }