Implemented a method in the function provider to get transitive dimensions

This commit is contained in:
Lennart Hensler committed 2014-03-26 18:27:20 +01:00
1 parent dd4fa0c310
commit 009a19708c
10 files changed
+60 -11

No files matched your search

@@ -50,7 +50,7 @@ public class TestCompoundFunction {
assertThat(compoundFunction.isDimension(), is(true));
//This is a workaround, because the assertion, that to types are equal checks for an instance of the given class instead.
assertThat("The actual declaring class did'nt match the expected one.",
compoundFunction.getDeclaringClass().equals(MarkedContainer.class), is(true));
compoundFunction.getDeclaringType().equals(MarkedContainer.class), is(true));
assertThat(compoundFunction.getSimpleName(), is("TestCompoundFunction"));
assertThat(compoundFunction.getLocalizedName(Locale.ENGLISH, TestsUtil.getTestStringMessages()), is("TestCompoundFunction"));
assertThat(compoundFunction.getResultUnit(), is(Unit.None));
@@ -24,11 +24,13 @@ import com.sap.sse.datamining.impl.functions.PartitioningParallelMarkedFunctionR
import com.sap.sse.datamining.impl.functions.RegistryFunctionsProvider;
import com.sap.sse.datamining.impl.functions.SimpleFunctionRegistry;
import com.sap.sse.datamining.shared.dto.FunctionDTO;
import com.sap.sse.datamining.test.function.test_classes.ContainerElement;
import com.sap.sse.datamining.test.function.test_classes.DataTypeWithContext;
import com.sap.sse.datamining.test.function.test_classes.DataTypeWithContextImpl;
import com.sap.sse.datamining.test.function.test_classes.DataTypeWithContextProcessor;
import com.sap.sse.datamining.test.function.test_classes.ExtendingInterface;
import com.sap.sse.datamining.test.function.test_classes.ExternalLibraryClass;
import com.sap.sse.datamining.test.function.test_classes.MarkedContainer;
import com.sap.sse.datamining.test.function.test_classes.SimpleClassWithMarkedMethods;
import com.sap.sse.datamining.test.util.FunctionTestsUtil;
import com.sap.sse.datamining.test.util.TestsUtil;
@@ -48,6 +50,8 @@ public class TestFunctionProvider {
classesToScan.add(DataTypeWithContext.class);
classesToScan.add(DataTypeWithContextProcessor.class);
classesToScan.add(ExtendingInterface.class);
classesToScan.add(MarkedContainer.class);
classesToScan.add(ContainerElement.class);
ParallelFunctionRetriever markedFunctionRetriever = new PartitioningParallelMarkedFunctionRetriever(classesToScan, FunctionTestsUtil.getExecutor());
functionRegistry.registerFunctionsRetrievedBy(markedFunctionRetriever);
@@ -115,5 +119,15 @@ public class TestFunctionProvider {
FunctionProvider functionProvider = new RegistryFunctionsProvider(functionRegistry, FunctionTestsUtil.getExecutor());
assertThat(functionProvider.getFunctionFor(null), is(nullValue()));
}
@Test
public void testGetTransitiveDimension() throws ClassCastException, NoSuchMethodException, SecurityException {
FunctionProvider functionProvider = new RegistryFunctionsProvider(functionRegistry, FunctionTestsUtil.getExecutor());
Collection<Function<?>> expectedDimensions = new HashSet<>();
expectedDimensions.add(FunctionFactory.createMethodWrappingFunction(ContainerElement.class.getMethod("getName",
new Class<?>[0])));
assertThat(functionProvider.getTransitiveDimensionsFor(MarkedContainer.class, 1), is(expectedDimensions));
}
}