Package org.geotools.data.aggregate

Source Code of org.geotools.data.aggregate.DataStoreFactoryTest

package org.geotools.data.aggregate;

import static org.geotools.data.aggregate.AggregatingDataStoreFactory.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.IOUtils;
import org.geotools.data.DataStoreFinder;
import org.geotools.feature.NameImpl;
import org.junit.Test;

/**
*
*
* @source $URL$
*/
public class DataStoreFactoryTest extends AbstractAggregatingStoreTest {

    @Test
    public void testConnectMinimalParams() throws IOException {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put(REPOSITORY_PARAM.key, repository);

        AggregatingDataStore store = (AggregatingDataStore) DataStoreFinder.getDataStore(params);
        assertNotNull(store);
        assertEquals(0, store.getTypeNames().length);
        assertTrue(store.isTolerant());
    }

    @Test
    public void testOneStore() throws IOException {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put(REPOSITORY_PARAM.key, repository);
        params.put(STORES_PARAM.key, new String[] { "gt:store3" });

        AggregatingDataStore store = (AggregatingDataStore) DataStoreFinder.getDataStore(params);
        assertNotNull(store);
        assertEquals(1, store.getTypeNames().length);
        assertTrue(store.isTolerant());
    }

    @Test
    public void testConfigurationUrl() throws IOException {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put(REPOSITORY_PARAM.key, repository);
        params.put(CONFIGURATION.key, DataStoreFactoryTest.class.getResource("configuration.xml"));

        checkManualConfiguration(params);
    }

    @Test
    public void testConfigurationXml() throws IOException {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put(REPOSITORY_PARAM.key, repository);
        InputStream is = DataStoreFactoryTest.class.getResourceAsStream("configuration.xml");
        params.put(CONFIGURATION_XML.key, IOUtils.toString(is));

        checkManualConfiguration(params);
    }

    private void checkManualConfiguration(Map<String, Object> params) throws IOException {
        AggregatingDataStore store = (AggregatingDataStore) DataStoreFinder.getDataStore(params);
        assertNotNull(store);
        assertEquals(2, store.getTypeNames().length);
        assertTrue(store.isTolerant());

        AggregateTypeConfiguration bp = store.getConfiguration("BasicPolygons");
        assertNotNull(bp);
        assertEquals("BasicPolygons", bp.getName());
        assertEquals(2, bp.getSourceTypes().size());
        assertSingleSourceType("BasicPolygons", new NameImpl("store1"), bp);
        assertSingleSourceType("BasicPolygons2", new NameImpl("store2"), bp);

        AggregateTypeConfiguration rs = store.getConfiguration("RoadSegments");
        assertNotNull(rs);
        assertEquals("RoadSegments", rs.getName());
        assertEquals(2, rs.getSourceTypes().size());
        assertSingleSourceType("RoadSegments", new NameImpl("store1"), rs);
        assertSingleSourceType("RoadSegments2", new NameImpl("store3"), rs);
    }

    @Test
    public void testEncodeDecode() throws Exception {
        // build the store so that we have a ready to use configuration
        Map<String, Object> params = new HashMap<String, Object>();
        params.put(REPOSITORY_PARAM.key, repository);
        params.put(STORES_PARAM.key, new String[] { "store1", "gt:store3" });

        AggregatingDataStore store = (AggregatingDataStore) DataStoreFinder.getDataStore(params);
        List<AggregateTypeConfiguration> configs = new ArrayList<AggregateTypeConfiguration>(store
                .getConfigurations().values());
       
        AggregatingDataStoreFactory factory = new AggregatingDataStoreFactory();
        String xml = factory.encodeConfiguration(configs);
       
        List<AggregateTypeConfiguration> configs2 = factory.parseConfiguration(xml);
        assertEquals(configs, configs2);
    }

}
TOP

Related Classes of org.geotools.data.aggregate.DataStoreFactoryTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.