Package org.geoserver.python.filter

Source Code of org.geoserver.python.filter.PythonFilterFunctionAdapterTest

package org.geoserver.python.filter;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.geoserver.platform.GeoServerResourceLoader;
import org.geoserver.python.Python;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.filter.FilterFactory;

public class PythonFilterFunctionAdapterTest {

    static Python py;
    static PythonFilterFunctionAdapter adapter;
   
    @BeforeClass
    public static void setUpData() throws Exception {
        GeoServerResourceLoader loader = new GeoServerResourceLoader(new File("target"));
        py = new Python(loader);
       
        File f = new File("target", "foo_function.py");
        FileUtils.copyURLToFile(PythonFilterFunctionAdapterTest.class.getResource("foo_function.py"), f);
        adapter = new PythonFilterFunctionAdapter(f, py);
    }
   
    @Test
    public void testGetNames() {
        assertTrue(adapter.getNames().contains("foo"));
    }
   
    @Test
    public void testGetParameterNames() {
        assertTrue(adapter.getParameterNames("foo").contains("bar"));
        assertTrue(adapter.getParameterNames("foo").contains("baz"));
    }
   
    @Test
    public void testEvaluate() {
        FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
       
        List args = Arrays.asList(ff.literal("one"), ff.literal("two"));
        Object result = adapter.evaluate("foo", null, args );
        assertEquals("bam", result);
    }
   
    @Test
    public void testEvaluateFeature() {
        SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
        tb.setName("geotools");
        tb.add("foo", String.class);
       
        SimpleFeatureBuilder b = new SimpleFeatureBuilder(tb.buildFeatureType());
        b.add("baz");
       
        SimpleFeature f = b.buildFeature(null);
        assertEquals(false, adapter.evaluate("acme", f, null ));
       
        b.add("bar");
        f = b.buildFeature(null);
        assertEquals(true, adapter.evaluate("acme", f, null ));
    }
   
}
TOP

Related Classes of org.geoserver.python.filter.PythonFilterFunctionAdapterTest

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.