blob: 1a3dd1c81840fcf90a936903f5618813b1e7845c [file] [log] [blame]
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package net.sf.taverna.wsdl.xmlsplitter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.taverna.wsdl.parser.TypeDescriptor;
import net.sf.taverna.wsdl.parser.WSDLParser;
import net.sf.taverna.wsdl.testutils.WSDLTestHelper;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author sowen
*/
public class XMLOutputSplitterTest extends WSDLTestHelper {
@Test
public void testRPCComplexWithInternalList() throws Exception {
WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("menagerie-complex-rpc.wsdl"));
TypeDescriptor descriptor = parser.getOperationOutputParameters("getComplexWithInternalList").get(0);
XMLOutputSplitter splitter = new XMLOutputSplitter(descriptor, new String [] {"length","innerArray","innerList"}, new String [] {"text/plain","l('text/plain')","l('text/plain')"}, new String[] {"input"});
String inputXML=getResourceContentsString("getComplexWithInternalListResponse.xml");
Map<String,String> inputMap = new HashMap<String,String>();
inputMap.put("input", inputXML);
Map<String,Object> outputMap = splitter.execute(inputMap);
assertNotNull(outputMap.get("length"));
assertNotNull(outputMap.get("innerList"));
assertNotNull(outputMap.get("innerArray"));
assertEquals("4",outputMap.get("length"));
List<String> array = ( List<String> )outputMap.get("innerArray");
assertEquals(4,array.size());
assertEquals("String A",array.get(0));
assertEquals("String B",array.get(1));
assertEquals("String C",array.get(2));
assertEquals("String D",array.get(3));
array = ( List<String> )outputMap.get("innerList");
assertEquals(4,array.size());
assertEquals("String A",array.get(0));
assertEquals("String B",array.get(1));
assertEquals("String C",array.get(2));
assertEquals("String D",array.get(3));
}
@Test
public void testWrappedArrayDefinedWithRestriction() throws Exception {
WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("jws-online.wsdl"));
TypeDescriptor descriptor = parser.getOperationOutputParameters("getSteadyStateTable").get(0);
XMLOutputSplitter splitter = new XMLOutputSplitter(descriptor, new String [] {"model","fluxNames","fluxVals"}, new String [] {"text/plain","l('text/plain')","l('text/plain')"}, new String[] {"input"});
String inputXML=getResourceContentsString("jws-splitter-input.xml");
Map<String,String> inputMap = new HashMap<String,String>();
inputMap.put("input", inputXML);
Map<String,Object> outputMap = splitter.execute(inputMap);
assertNotNull(outputMap.get("model"));
assertNotNull(outputMap.get("fluxNames"));
assertNotNull(outputMap.get("fluxVals"));
assertEquals("teusink",outputMap.get("model"));
List<String> array = ( List<String> )outputMap.get("fluxNames");
assertEquals(17,array.size());
assert(array.contains("v[G3PDH]"));
array = ( List<String> )outputMap.get("fluxVals");
assertEquals(17,array.size());
assert(array.contains("88.15049285974906"));
}
}