/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.function.config;
import static org.testng.Assert.assertEquals;
import java.util.Arrays;
import java.util.List;
import org.testng.annotations.Test;
import org.threeten.bp.Instant;
import com.opengamma.engine.function.AbstractFunction;
import com.opengamma.engine.test.MockFunction;
import com.opengamma.util.test.TestGroup;
/**
* Tests the {@link AbstractFunctionConfigurationBean} class.
*/
@Test(groups = TestGroup.UNIT)
public class AbstractFunctionConfigurationBeanTest {
@Test(expectedExceptions = IllegalStateException.class)
public void testFunctionConfigurationInvalidArguments() {
AbstractFunctionConfigurationBean.functionConfiguration(AbstractFunction.class);
}
public void testCreate() {
final AbstractFunctionConfigurationBean bean = new AbstractFunctionConfigurationBean() {
@Override
protected void addAllConfigurations(final List<FunctionConfiguration> functions) {
functions.add(functionConfiguration(MockFunction.class));
functions.add(functionConfiguration(MockFunction.class, "Foo", "Bar"));
}
};
final FunctionConfigurationSource source = bean.getObjectCreating();
final FunctionConfigurationBundle bundle = source.getFunctionConfiguration(Instant.now());
final List<FunctionConfiguration> functions = bundle.getFunctions();
assertEquals(functions.size(), 2);
assertEquals(functions.get(0).getClass(), StaticFunctionConfiguration.class);
assertEquals(((StaticFunctionConfiguration) functions.get(0)).getDefinitionClassName(), MockFunction.class.getName());
assertEquals(functions.get(1).getClass(), ParameterizedFunctionConfiguration.class);
assertEquals(((ParameterizedFunctionConfiguration) functions.get(1)).getDefinitionClassName(), MockFunction.class.getName());
assertEquals(((ParameterizedFunctionConfiguration) functions.get(1)).getParameter(), Arrays.asList("Foo", "Bar"));
}
}