Package com.boundlessgeo.geoserver.bundle

Source Code of com.boundlessgeo.geoserver.bundle.BundleTestSupport

package com.boundlessgeo.geoserver.bundle;


import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;
import org.apache.commons.io.FileUtils;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.impl.CatalogImpl;
import org.geoserver.config.GeoServerPersister;
import org.geoserver.config.util.XStreamPersisterFactory;
import org.geoserver.platform.GeoServerResourceLoader;
import org.geotools.util.logging.Logging;
import org.junit.After;
import org.junit.Before;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

public class BundleTestSupport {

    //protected Path dataDir;

    protected Catalog cat;

    @Before
    public void quietLogging() {
        Logger log = Logging.getLogger("org.geoserver.platform");
        log.setLevel(Level.OFF);
    }

    @Before
    public void setUp() throws IOException {
        cat = createCatalog();
    }

    @After
    public void tearDown() throws IOException {
        File dataDir = cat.getResourceLoader().getBaseDirectory();
        try {
            cat.dispose();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        FileUtils.deleteDirectory(dataDir);
    }

    protected Catalog createCatalog() throws IOException {
        Path dataDir = Files.createTempDirectory(Paths.get("target"), "data");
        GeoServerResourceLoader resourceLoader = new GeoServerResourceLoader(dataDir.toFile());

        Catalog cat = new CatalogImpl();
        cat.setResourceLoader(resourceLoader);
        cat.addListener(new GeoServerPersister(resourceLoader, new XStreamPersisterFactory().createXMLPersister()));
        return cat;
    }

    protected Map<String,Object> featureData(Object... kvp) {
        if (kvp.length % 2 != 0) {
            throw new IllegalArgumentException("method takes even number of arguments");
        }

        LinkedHashMap<String,Object> map = new LinkedHashMap<>();
        for (int i = 0; i < kvp.length; i+=2) {
            map.put(kvp[i].toString(), kvp[i+1]);
        }

        return map;
    }

    protected List<Map<String,Object>> stuff() throws Exception {
        List<Map<String,Object>> stuff = new ArrayList<>();
        stuff.add(featureData("geom", geo("POINT(0 0)"), "name", "zero", "id", 0));
        stuff.add(featureData("geom", geo("POINT(1 1)"), "name", "one", "id", 1));
        stuff.add(featureData("geom", geo("POINT(2 2)"), "name", "two", "id", 2));
        return stuff;
    }

    protected List<Map<String,Object>> widgets() throws Exception {
        List<Map<String,Object>> widgets = new ArrayList<>();
        widgets.add(featureData("geom", geo("POINT(0 0)"), "name", "bomb", "id", 0));
        widgets.add(featureData("geom", geo("POINT(1 1)"), "name", "anvil", "id", 1));
        widgets.add(featureData("geom", geo("POINT(2 2)"), "name", "dynamite", "id", 2));
        return widgets;
    }

    protected Geometry geo(String wkt) throws ParseException {
        return new WKTReader().read(wkt);
    }
}
TOP

Related Classes of com.boundlessgeo.geoserver.bundle.BundleTestSupport

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.