@Test public void testGetOperationElementQName2() throws Exception { URL tav744Url = getClass().getResource( "/net/sf/taverna/wsdl/parser/TAV-744/InstrumentService__.wsdl"); WSDLParser parser = new WSDLParser(tav744Url.toExternalForm()); QName operationQName = parser.getOperationQname("getList"); assertEquals("operation element name is wrong", "GetListRequest", operationQName.getLocalPart()); assertEquals("operation namespace is wrong", "http://InstrumentService.uniparthenope.it/InstrumentService", operationQName.getNamespaceURI()); } }
@Test public void isWSRF() throws Exception { wsdlParser = new WSDLParser(counterServiceWSDL.toExternalForm()); assertTrue("Not recognized as WSRF service", wsdlParser.isWsrfService()); }
@Test public void testLiteralUnwrappedParserForNonXMLOutput() throws Exception { SOAPResponseParserFactory factory = SOAPResponseParserFactory.instance(); List<String> response = new ArrayList<String>(); WSDLParser wsdlParser = new WSDLParser(wsdlResourcePath("TestServices-unwrapped.wsdl")); SOAPResponseParser parser = factory.create(response, "literal", "document", wsdlParser.getOperationOutputParameters("getString")); assertTrue("The parser is the wrong type, it was:"+parser.getClass().getSimpleName(),parser instanceof SOAPResponsePrimitiveLiteralParser); }
@Test public void testGetOperationElementQName() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("eutils/eutils_lite.wsdl")); QName operationQName = parser.getOperationQname("run_eInfo"); assertEquals("element name is wrong", "eInfoRequest", operationQName .getLocalPart()); assertEquals("operation namespace is wrong", "http://www.ncbi.nlm.nih.gov/soap/eutils/einfo", operationQName .getNamespaceURI()); }
protected BodyBuilder createBuilder(String wsdl, String operation) throws Exception { WSDLParser parser = new WSDLParser(wsdl); return BodyBuilderFactory.instance().create(parser, operation, parser.getOperationInputParameters(operation)); } }
@Test public void testOptional() throws Exception { WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("VSOi.wsdl")); TypeDescriptor descriptor = parser.getOperationInputParameters("Query").get(0); XMLInputSplitter splitter = new XMLInputSplitter(descriptor,new String[]{"version","block"},new String[]{"text/plain","text/plain"},new String[]{"output"}); Map<String,Object> inputMap = new HashMap<String, Object>(); // connect none of the inputs Map<String,String> outputMap = splitter.execute(inputMap); assertNotNull("there should be an output named 'output'",outputMap.containsKey("output")); String xml = outputMap.get("output"); // empty string as <block> as it is not nillable assertTrue(xml.contains("<block xmlns=\"\"></block>")); // minOccurs=0 - so it should not be there assertTrue(! xml.contains("<version>")); }
@Test public void testLiteralUnwrappedAlternativeWSDL() throws Exception { SOAPResponseParserFactory factory = SOAPResponseParserFactory.instance(); List<String> response = new ArrayList<String>(); WSDLParser wsdlParser = new WSDLParser(wsdlResourcePath("prodoric.wsdl")); SOAPResponseParser parser = factory.create(response, "literal", "document", wsdlParser.getOperationOutputParameters("hello")); assertTrue("The parser is the wrong type, it was:"+parser.getClass().getSimpleName(),parser instanceof SOAPResponsePrimitiveLiteralParser); } }
protected BodyBuilder createBuilder(String wsdl, String operation) throws Exception { WSDLParser parser = new WSDLParser(wsdl); return BodyBuilderFactory.instance().create(parser, operation, parser.getOperationInputParameters(operation)); } }
@Test public void testExecute() throws Exception { WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("eutils/eutils_lite.wsdl")); TypeDescriptor descriptor = parser.getOperationInputParameters("run_eInfo").get(0); XMLInputSplitter splitter = new XMLInputSplitter(descriptor,new String[]{"db","tool","email"},new String[]{"text/plain","text/plain","text/plain"},new String[]{"output"}); Map<String,Object> inputMap = new HashMap<String, Object>(); inputMap.put("db", "pubmed"); inputMap.put("email", "bob.monkhouse@itv.com"); Map<String,String> outputMap = splitter.execute(inputMap); assertNotNull("there should be an output named 'output'",outputMap.containsKey("output")); String xml = outputMap.get("output"); assertTrue(xml.startsWith("<parameters xmlns=\"http://www.ncbi.nlm.nih.gov/soap/eutils/einfo\">")); assertTrue(xml.contains("<db>pubmed</db>")); assertTrue(! xml.contains("<tool")); assertTrue(xml.contains("<email>bob.monkhouse@itv.com</email>")); }
@Test public void testNillable() throws Exception { WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("VSOi.wsdl")); TypeDescriptor descriptor = parser.getOperationInputParameters("Query").get(0); XMLInputSplitter splitter = new XMLInputSplitter(descriptor,new String[]{"version","block"},new String[]{"text/plain","text/plain"},new String[]{"output"}); Map<String,Object> inputMap = new HashMap<String, Object>(); // Magic string meaning insert xsi:nil=true inputMap.put("version", "xsi:nil"); Map<String,String> outputMap = splitter.execute(inputMap); assertNotNull("there should be an output named 'output'",outputMap.containsKey("output")); String xml = outputMap.get("output"); System.out.println(xml); // empty string as <block> as it is not nillable assertTrue(xml.contains("<block xmlns=\"\"></block>")); // FIXME: Should not really allow nil=true here, as version is not nillable! assertTrue(xml.contains("<version xmlns=\"\" " + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xsi:nil=\"true\" />")); }
@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")); }
@Test public void testBaseTypes() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("bind.wsdl")); List<TypeDescriptor> inputs = parser .getOperationInputParameters("BIVGetRecord"); assertEquals("wrong number of inputs", 1, inputs.size()); assertTrue("should not be base type", inputs.get(0) instanceof BaseTypeDescriptor); assertEquals("wrong name", "bid", (inputs.get(0)) .getName()); assertEquals("wrong type", "int", (inputs.get(0)) .getType()); }
@Test public void testGetUseLiteral() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("eutils/eutils_lite.wsdl")); String use = parser.getUse("run_eInfo"); assertEquals("use should be literal", "literal", use); }
@Test public void testGetOperationNamespace() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("CurrencyExchangeService.wsdl")); String operationNamespace = parser.getOperationNamespaceURI("getRate"); assertEquals("operation namespace is wrong", "urn:xmethods-CurrencyExchange", operationNamespace); }
@Test public void testGetActionURI() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("eutils/eutils_lite.wsdl")); String actionURI = parser.getSOAPActionURI("run_eInfo"); assertEquals("action uri is wrong", "einfo", actionURI); }
@Test public void testMissingStyleInBinding() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("SBWReader.wsdl")); assertEquals("Style should default to document if missing", "document", parser.getStyle()); }
@Test public void testGetUseEncoded() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("bind.wsdl")); String use = parser.getUse("BIVGetRecords"); assertEquals("use should be encoded", "encoded", use); }
@Test public void testGetOperationNamespace2() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("eutils/eutils_lite.wsdl")); String operationNamespace = parser .getOperationNamespaceURI("run_eInfo"); assertEquals("operation namespace is wrong", "http://www.ncbi.nlm.nih.gov/soap/eutils/einfo", operationNamespace); }
@Test public void testGetOperations() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("eutils/eutils_lite.wsdl")); List<Operation> operations = parser.getOperations(); assertEquals( "wrong number of operations found (wsdl may have changed)", 12, operations.size()); Operation op = operations.get(0); assertEquals("wrong name for first operation", "run_eGquery", op .getName()); assertEquals("wrong style", "document", parser.getStyle()); }
@Test public void testGoVizNoOutputs() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("GoViz.wsdl")); List<TypeDescriptor> inputs = parser .getOperationInputParameters("destroySession"); List<TypeDescriptor> outputs = parser .getOperationOutputParameters("destroySession"); assertEquals("wrong number of inputs", 1, inputs.size()); assertEquals("wrong number of outputs", 0, outputs.size()); TypeDescriptor typeDesc = inputs.get(0); assertTrue("input should be BaseType", typeDesc instanceof BaseTypeDescriptor); assertEquals("wrong name", "sessionID", typeDesc.getName()); assertEquals("wrong type", "string", typeDesc.getType()); }