package org.geoserver.script.py;
import java.util.Map;
import org.geoserver.script.wps.ScriptProcessFactory;
import org.geoserver.script.wps.ScriptProcessTestSupport;
import org.geoserver.wps.process.RawData;
import org.geotools.data.Parameter;
import org.opengis.feature.type.Name;
public class PyRawDataTest extends ScriptProcessTestSupport {
@Override
public String getExtension() {
return "py";
}
@Override
public String getProcessName() {
return "raw";
}
public void testName() throws Exception {
ScriptProcessFactory pf = new ScriptProcessFactory(scriptMgr);
assertEquals(1, pf.getNames().size());
Name name = pf.getNames().iterator().next();
assertEquals("raw", name.getLocalPart());
}
public void testProcessDescription() throws Exception {
ScriptProcessFactory pf = new ScriptProcessFactory(scriptMgr);
Name raw = pf.getNames().iterator().next();
// check inputs
Map<String, Parameter<?>> inputs = pf.getParameterInfo(raw);
assertNotNull(inputs);
assertEquals(2, inputs.size());
Parameter<?> param = checkParameter(inputs, "input", RawData.class, "The raw data input", 1, 1);
assertEquals("application/json,text/xml", param.metadata.get("mimeTypes"));
checkParameter(inputs, "outputMimeType", String.class, "The user chosen output mime type", 0, 1);
// check outputs
Map<String, Parameter<?>> resultInfo = pf.getResultInfo(raw, null);
assertEquals(1, resultInfo.size());
param = checkParameter(resultInfo, "result", RawData.class, "The output", 1, 1);
assertEquals("application/json,text/xml", param.metadata.get("mimeTypes"));
assertEquals("outputMimeType", param.metadata.get("chosenMimeType"));
}
public Parameter<?> checkParameter(Map<String, Parameter<?>> parameters, String name,
Class type,
String description, int minOccurs, int maxOccurs) {
assertTrue(parameters.containsKey(name));
Parameter<?> param = parameters.get(name);
assertTrue(type.isAssignableFrom(param.type));
assertEquals(description, param.description.toString());
assertEquals(minOccurs, param.minOccurs);
assertEquals(maxOccurs, param.maxOccurs);
return param;
}
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
}
}