Files
sailing-analytics/java/com.sap.sse.datamining.test/src/com/sap/sse/datamining/impl/TestDataRetrieverChainDefinitionRegistry.java
T

76 lines
4.5 KiB
Java

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<Collection<Test_Regatta>> raceRetrieverChainDefinition;
private DataRetrieverChainDefinition<Collection<Test_Regatta>> legRetrieverChainDefinition;
private DataRetrieverChainDefinitionRegistry dataRetrieverChainDefinitionRegistry;
@SuppressWarnings("unchecked")
@Before
public void initializeRetrieverChainsAndRegistry() {
raceRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class);
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
raceRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class);
Class<Processor<Test_Regatta, Test_HasRaceContext>> raceRetrieverClass =
(Class<Processor<Test_Regatta, Test_HasRaceContext>>)(Class<?>) TestRaceWithContextRetrievalProcessor.class;
raceRetrieverChainDefinition.addAsLast(regattaRetrieverClass,
raceRetrieverClass,
Test_HasRaceContext.class);
legRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<Collection<Test_Regatta>>(raceRetrieverChainDefinition);
Class<Processor<Test_HasRaceContext, Test_HasLegOfCompetitorContext>> legRetrieverClass =
(Class<Processor<Test_HasRaceContext, Test_HasLegOfCompetitorContext>>)(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<Collection<Test_Regatta>> dataSourceType = (Class<Collection<Test_Regatta>>)(Class<?>) Collection.class;
Collection<DataRetrieverChainDefinition<Collection<Test_Regatta>>> 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<DataRetrieverChainDefinition<Test_Regatta>> expectedEmptyDataRetrieverChainDefinitions = new HashSet<DataRetrieverChainDefinition<Test_Regatta>>();
assertThat(dataRetrieverChainDefinitionRegistry.getDataRetrieverChainDefinitions(Test_Regatta.class, Test_HasRaceContextImpl.class), is(expectedEmptyDataRetrieverChainDefinitions));
}
}