package nl.ipo.cds.etl.theme.protectedSite; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.concurrent.Executor; import javax.inject.Inject; import javax.xml.stream.XMLStreamReader; import nl.ipo.cds.categories.IntegrationTests; import nl.ipo.cds.dao.ManagerDao; import nl.ipo.cds.domain.Bronhouder; import nl.ipo.cds.domain.Dataset; import nl.ipo.cds.domain.DatasetType; import nl.ipo.cds.domain.EtlJob; import nl.ipo.cds.domain.ImportJob; import nl.ipo.cds.domain.Thema; import nl.ipo.cds.etl.DatasetHandlers; import nl.ipo.cds.etl.GenericFeature; import nl.ipo.cds.etl.featurecollection.FeatureCollection; import nl.ipo.cds.etl.featurecollection.WFSResponse; import nl.ipo.cds.etl.featurecollection.WFSResponseReader; import nl.ipo.cds.etl.test.TestData; import nl.ipo.cds.etl.util.BlockingExecutor; import nl.ipo.cds.executor.ConfigDir; import org.deegree.feature.types.AppSchema; import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = XMLConfigTest.Config.class) @Category(IntegrationTests.class) public class XMLConfigTest { @Autowired private ProtectedSiteThemeConfig xmlConfig; private @Inject ManagerDao managerDao; private Bronhouder bronhouder; private Dataset dataset; private EtlJob job; private XMLStreamReader streamReader; private AppSchema appSchema; private String featureTypeName; @Configuration @ComponentScan (basePackageClasses = {nl.ipo.cds.etl.config.Package.class, nl.ipo.cds.etl.theme.protectedSite.config.Package.class }) @ImportResource ({ "classpath:/nl/ipo/cds/context/propertyConfigurer-test.xml", "classpath:/nl/ipo/cds/dao/dao-applicationContext.xml", "classpath:/nl/ipo/cds/dao/dataSource-applicationContext.xml" }) public static class Config { @Bean public Executor executer () { return new BlockingExecutor (2); } @Bean public ConfigDir configDir () { return new ConfigDir ("classpath:"); } } @Before public void setUp() throws Exception { bronhouder = new Bronhouder(); bronhouder.setCode("9931"); Thema thema = new Thema (); thema.setNaam ("Protected sites"); DatasetType datasetType = new DatasetType(); datasetType.setNaam("ST"); datasetType.setThema (thema); dataset = new Dataset(); dataset.setBronhouder(bronhouder); dataset.setDatasetType(datasetType); job = new ImportJob(); // copy properties from dataset to job job.setBronhouder(dataset.getBronhouder()); job.setDatasetType(dataset.getDatasetType()); job.setUuid(dataset.getUuid()); TestData testData = new TestData(); streamReader = testData.getXMLStreamReader(); appSchema = testData.getAppSchema (); featureTypeName = testData.getFeatureTypeName (); } @Test public void testParseFeatureCollection() throws Exception { DatasetHandlers<ProtectedSite> datasetHandlers = xmlConfig.createDatasetHandlers(job, managerDao); assertNotNull(datasetHandlers); WFSResponseReader wfsResponseReader = new WFSResponseReader(); WFSResponse wfsResponse = wfsResponseReader.parseWFSResponse(streamReader, appSchema, featureTypeName); FeatureCollection featureCollection = wfsResponse.getFeatureCollection(); int count = 0; for(final GenericFeature feature : featureCollection) { assertNotNull(feature); count++; } assertEquals(33, count); } }