package com.sap.sse.datamining.impl; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import java.util.Collection; import java.util.HashSet; import org.junit.Before; import org.junit.Test; import com.sap.sse.datamining.DataRetrieverChainDefinition; import com.sap.sse.datamining.components.Processor; import com.sap.sse.datamining.test.functions.registry.test_classes.Test_Regatta; import com.sap.sse.datamining.test.functions.registry.test_contexts.Test_HasLegOfCompetitorContext; import com.sap.sse.datamining.test.functions.registry.test_contexts.Test_HasRaceContext; import com.sap.sse.datamining.test.functions.registry.test_contexts.Test_HasRaceContextImpl; import com.sap.sse.datamining.test.util.components.TestLegOfCompetitorWithContextRetrievalProcessor; import com.sap.sse.datamining.test.util.components.TestRaceWithContextRetrievalProcessor; import com.sap.sse.datamining.test.util.components.TestRegattaRetrievalProcessor; public class TestDataRetrieverChainDefinitionRegistry { private DataRetrieverChainDefinition> raceRetrieverChainDefinition; private DataRetrieverChainDefinition> legRetrieverChainDefinition; private DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry; @SuppressWarnings("unchecked") @Before public void initializeRetrieverChainsAndRegistry() { raceRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class>)(Class) Collection.class); Class, Test_Regatta>> regattaRetrieverClass = (Class, Test_Regatta>>)(Class) TestRegattaRetrievalProcessor.class; raceRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class); Class> raceRetrieverClass = (Class>)(Class) TestRaceWithContextRetrievalProcessor.class; raceRetrieverChainDefinition.addAsLast(regattaRetrieverClass, raceRetrieverClass, Test_HasRaceContext.class); legRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition>(raceRetrieverChainDefinition); Class> legRetrieverClass = (Class>)(Class) TestLegOfCompetitorWithContextRetrievalProcessor.class; legRetrieverChainDefinition.addAsLast(raceRetrieverClass, legRetrieverClass, Test_HasLegOfCompetitorContext.class); dataRetrieverChainDefinitionRegistry = new SimpleDataRetrieverChainDefinitionRegistry(); dataRetrieverChainDefinitionRegistry.add(raceRetrieverChainDefinition); dataRetrieverChainDefinitionRegistry.add(legRetrieverChainDefinition); } @SuppressWarnings("unchecked") @Test public void testGetDataRetrieverChainDefinitions() { Class> dataSourceType = (Class>)(Class) Collection.class; Collection>> expectedDataRetrieverChainDefinitions = new HashSet<>(); expectedDataRetrieverChainDefinitions.add(raceRetrieverChainDefinition); assertThat(dataRetrieverChainDefinitionRegistry.getDataRetrieverChainDefinitions(dataSourceType, Test_HasRaceContext.class), is(expectedDataRetrieverChainDefinitions)); expectedDataRetrieverChainDefinitions = new HashSet<>(); expectedDataRetrieverChainDefinitions.add(legRetrieverChainDefinition); assertThat(dataRetrieverChainDefinitionRegistry.getDataRetrieverChainDefinitions(dataSourceType, Test_HasLegOfCompetitorContext.class), is(expectedDataRetrieverChainDefinitions)); } @Test public void testGetDataRetrieverChainDefinitionsForNotRegisteresChain() { Collection> expectedEmptyDataRetrieverChainDefinitions = new HashSet>(); assertThat(dataRetrieverChainDefinitionRegistry.getDataRetrieverChainDefinitions(Test_Regatta.class, Test_HasRaceContextImpl.class), is(expectedEmptyDataRetrieverChainDefinitions)); } }