/* * JBoss, Home of Professional Open Source * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated * by the @authors tag. All rights reserved. * See the copyright.txt in the distribution for a * full listing of individual contributors. * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU Lesser General Public License, v. 2.1. * This program is distributed in the hope that it will be useful, but WITHOUT A * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License, * v.2.1 along with this distribution; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package org.savara.wsdl.internal.generator; import javax.wsdl.Part; import javax.xml.namespace.QName; import org.savara.protocol.model.util.TypeSystem; import org.savara.common.logging.DefaultFeedbackHandler; import org.savara.common.logging.DefaultFeedbackHandler.IssueDetails; import org.savara.common.logging.DefaultFeedbackHandler.IssueType; import org.savara.common.logging.MessageFormatter; import org.savara.common.model.annotation.Annotation; import org.savara.common.model.annotation.AnnotationDefinitions; import org.savara.contract.model.*; import org.savara.wsdl.generator.WSDLBinding; import org.savara.wsdl.generator.soap.SOAPDocLitWSDLBinding; import org.savara.wsdl.generator.soap.SOAPRPCWSDLBinding; import org.savara.wsdl.internal.generator.WSDLGeneratorImpl; import junit.framework.TestCase; public class WSDLGeneratorImplTest extends TestCase { private static final String TEST_LOCALPART = "test.localpart"; private static final String HTTP_TEST_NAMESPACE = "http://test.namespace"; private static final String TEST_TYPE_NS = "testTypeNS"; private static final String TEST_TYPE_LP = "testTypeLP"; private static final String TEST_TYPE_LP2 = "testTypeLP2"; private static final String TEST_TYPE_LP3 = "testTypeLP3"; private static final String TEST_NAME_SPACE = "testNameSpace"; private static final String TEST_NAME_SPACE2 = "testNameSpace2"; private static final String TEST_NAME_SPACE3 = "testNameSpace3"; private static final String TEST_NAME = "testName"; public void testDefnNameAndNamespace() { Contract c=new Contract(); c.setName(TEST_NAME); c.setNamespace(TEST_NAME_SPACE); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); java.util.List<javax.wsdl.Definition> defns=gen.generate(c, null, handler); if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (defns.size() != 1) { fail("Only one Definition found: "+defns.size()); } javax.wsdl.Definition defn=defns.get(0); if (defn.getTargetNamespace() == null) { fail("Target namespace not set"); } if (TEST_NAME_SPACE.equals(defn.getTargetNamespace()) == false) { fail("Target namespace not correct: "+defn.getTargetNamespace()); } if (defn.getQName() == null) { fail("QName not set"); } if (defn.getQName().getLocalPart() == null) { fail("QName localpart not set"); } if (TEST_NAME.equals(defn.getQName().getLocalPart()) == false) { fail("QName localpart not correct: "+defn.getQName().getLocalPart()); } } public void testPortTypeNameAndNamespace() { Interface src=new Interface(); src.setName(TEST_NAME); src.setNamespace(TEST_NAME_SPACE); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); java.util.List<javax.wsdl.Definition> defns=new java.util.Vector<javax.wsdl.Definition>(); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); javax.wsdl.PortType result=gen.createPortType(defns, new Contract(), src, null, handler); if (result == null) { fail("PortType is null"); } if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (result.getQName() == null) { fail("QName not set"); } if (result.getQName().getNamespaceURI() == null) { fail("QName namespace not set"); } if (TEST_NAME_SPACE.equals(result.getQName().getNamespaceURI()) == false) { fail("Namespace not correct: "+result.getQName().getNamespaceURI()); } if (result.getQName().getLocalPart() == null) { fail("QName localpart not set"); } if (TEST_NAME.equals(result.getQName().getLocalPart()) == false) { fail("QName localpart not correct: "+result.getQName().getLocalPart()); } } public void testPortTypeBindingNameAndNamespace() { Interface src=new Interface(); src.setName(TEST_NAME); src.setNamespace(TEST_NAME_SPACE); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); java.util.List<javax.wsdl.Definition> defns=new java.util.Vector<javax.wsdl.Definition>(); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); javax.wsdl.Binding result=gen.createBinding(defns, new Contract(), src, null, null, handler); if (result == null) { fail("PortType is null"); } if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (result.getQName() == null) { fail("QName not set"); } if (result.getQName().getNamespaceURI() == null) { fail("QName namespace not set"); } if (TEST_NAME_SPACE.equals(result.getQName().getNamespaceURI()) == false) { fail("Namespace not correct: "+result.getQName().getNamespaceURI()); } if (result.getQName().getLocalPart() == null) { fail("QName localpart not set"); } if (result.getQName().getLocalPart().equals(TEST_NAME+WSDLGeneratorImpl.BINDING_SUFFIX) == false) { fail("QName localpart not correct: "+result.getQName().getLocalPart()); } } public void testDefnWithPortTypesAndBindings() { Contract c=new Contract(); c.setNamespace(TEST_NAME_SPACE); c.setName(TEST_NAME); Interface i1=new Interface(); i1.setName("I1"); i1.setNamespace(TEST_NAME_SPACE); // Need to associate a message, to ensure port type // is generated OneWayRequestMEP m1=new OneWayRequestMEP(); m1.setOperation(TEST_NAME); Type tref1=new Type(); tref1.setName(TEST_TYPE_LP); m1.getTypes().add(tref1); TypeDefinition ref1=new TypeDefinition(); ref1.setName(TEST_TYPE_LP); ref1.setDataType(new QName(TEST_NAME_SPACE,TEST_TYPE_LP).toString()); ref1.setTypeSystem(TypeSystem.XSD); ref1.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(ref1); i1.getMessageExchangePatterns().add(m1); Interface i2=new Interface(); i2.setName("I2"); i2.setNamespace(TEST_NAME_SPACE); OneWayRequestMEP m2=new OneWayRequestMEP(); m2.setOperation(TEST_NAME); Type tref2=new Type(); /* TypeDefinition ref2=new TypeDefinition(); tref2.getTypeDefinitions().add(ref1); ref2.setName(TEST_TYPE_LP); ref2.setNamespace(TEST_NAME_SPACE); ref2.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref2.setName(TEST_TYPE_LP); m2.getTypes().add(tref2); i2.getMessageExchangePatterns().add(m2); Interface i3=new Interface(); i3.setName("I3"); i3.setNamespace(TEST_NAME_SPACE); OneWayRequestMEP m3=new OneWayRequestMEP(); m3.setOperation(TEST_NAME); Type tref3=new Type(); /* TypeDefinition ref3=new TypeDefinition(); tref3.getTypeDefinitions().add(ref1); ref3.setName(TEST_TYPE_LP); ref3.setNamespace(TEST_NAME_SPACE); ref3.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref3.setName(TEST_TYPE_LP); m3.getTypes().add(tref3); i3.getMessageExchangePatterns().add(m3); c.getInterfaces().add(i1); c.getInterfaces().add(i2); c.getInterfaces().add(i3); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); java.util.List<javax.wsdl.Definition> defns=gen.generate(c, new SOAPRPCWSDLBinding(), handler); if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (defns.size() != 1) { fail("Only one Definition found: "+defns.size()); } javax.wsdl.Definition defn=defns.get(0); if (defn.getPortTypes().size() != c.getInterfaces().size()) { fail("Number of port types ("+defn.getPortTypes().size()+ ") does not match number of interfaces ("+ c.getInterfaces().size()+")"); } if (defn.getBindings().size() != c.getInterfaces().size()) { fail("Number of port type bindings ("+defn.getBindings().size()+ ") does not match number of interfaces ("+ c.getInterfaces().size()+")"); } } public void testOperationOneWay() { javax.wsdl.Definition defn=null; try { javax.wsdl.factory.WSDLFactory fact= javax.wsdl.factory.WSDLFactory.newInstance(); defn = fact.newDefinition(); } catch(Exception e) { fail("Failed to get definition"); } Contract c=new Contract(); OneWayRequestMEP src=new OneWayRequestMEP(); src.setOperation(TEST_NAME); Type tref=new Type(); TypeDefinition ref=new TypeDefinition(); ref.setName(TEST_TYPE_LP); ref.setDataType(new QName(TEST_TYPE_NS,TEST_TYPE_LP).toString()); ref.setTypeSystem(TypeSystem.XSD); ref.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(ref); /* TypeDefinition ref=new TypeDefinition(); tref.getTypeDefinitions().add(ref); ref.setName(TEST_TYPE_LP); ref.setNamespace(TEST_TYPE_NS); ref.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref.setName(ref.getName()); src.getTypes().add(tref); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); java.util.List<javax.wsdl.Definition> defns=new java.util.Vector<javax.wsdl.Definition>(); defns.add(defn); defn.setTargetNamespace(TEST_NAME_SPACE); javax.wsdl.PortType ptype=defn.createPortType(); ptype.setQName(new javax.xml.namespace.QName(TEST_NAME_SPACE, TEST_NAME)); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); javax.wsdl.Operation result=gen.createOperation(defns, c, ptype, src, new SOAPRPCWSDLBinding(), handler); if (result == null) { fail("Operation is null"); } if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (TEST_NAME.equals(result.getName()) == false) { fail("Operation name mismatch: "+result.getName()); } if (result.getInput() == null) { fail("Input not set"); } if (result.getOutput() != null) { fail("Output should NOT be set"); } if (result.getFaults().size() != 0) { fail("Faults should NOT be defined"); } } public void testOperationReqRespFaults() { javax.wsdl.Definition defn=null; try { javax.wsdl.factory.WSDLFactory fact= javax.wsdl.factory.WSDLFactory.newInstance(); defn = fact.newDefinition(); } catch(Exception e) { fail("Failed to get definition"); } Contract c=new Contract(); RequestResponseMEP src=new RequestResponseMEP(); src.setOperation(TEST_NAME); Type tref1=new Type(); TypeDefinition ref1=new TypeDefinition(); ref1.setName(TEST_TYPE_LP); ref1.setDataType(new QName(TEST_TYPE_NS,TEST_TYPE_LP).toString()); ref1.setTypeSystem(TypeSystem.XSD); ref1.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(ref1); /* TypeDefinition ref1=new TypeDefinition(); tref1.getTypeDefinitions().add(ref1); ref1.setName(TEST_TYPE_LP); ref1.setNamespace(TEST_TYPE_NS); ref1.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref1.setName(TEST_TYPE_LP); src.getTypes().add(tref1); Type tref2=new Type(); /* TypeDefinition ref2=new TypeDefinition(); tref2.getTypeDefinitions().add(ref2); ref2.setName(TEST_TYPE_LP); ref2.setNamespace(TEST_TYPE_NS); ref2.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref2.setName(TEST_TYPE_LP); src.getResponseTypes().add(tref2); FaultDetails fd1=new FaultDetails(); fd1.setName("faultName1"); Type tref3=new Type(); /* TypeDefinition ref3=new TypeDefinition(); tref3.getTypeDefinitions().add(ref3); ref3.setName(TEST_TYPE_LP); ref3.setNamespace(TEST_TYPE_NS); ref3.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref3.setName(TEST_TYPE_LP); fd1.getTypes().add(tref3); src.getFaultDetails().add(fd1); FaultDetails fd2=new FaultDetails(); fd2.setName("faultName2"); Type tref4=new Type(); tref4.setName(TEST_TYPE_LP); /* TypeDefinition ref4=new TypeDefinition(); tref4.getTypeDefinitions().add(ref4); ref4.setName(TEST_TYPE_LP); ref4.setNamespace(TEST_TYPE_NS); ref4.setTypeSystem(TypeDefinition.XSD_TYPE); */ fd2.getTypes().add(tref4); src.getFaultDetails().add(fd2); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); java.util.List<javax.wsdl.Definition> defns=new java.util.Vector<javax.wsdl.Definition>(); defns.add(defn); defn.setTargetNamespace(TEST_NAME_SPACE); javax.wsdl.PortType ptype=defn.createPortType(); ptype.setQName(new javax.xml.namespace.QName(TEST_NAME_SPACE, TEST_NAME)); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); javax.wsdl.Operation result=gen.createOperation(defns, c, ptype, src, new SOAPRPCWSDLBinding(), handler); if (result == null) { fail("Operation is null"); } if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (TEST_NAME.equals(result.getName()) == false) { fail("Operation name mismatch: "+result.getName()); } if (result.getInput() == null) { fail("Input not set"); } if (result.getOutput() == null) { fail("Output not set"); } if (result.getFaults().size() != src.getFaultDetails().size()) { fail("Faults number ("+result.getFaults().size()+ ") does not match contract ("+src.getFaultDetails().size()+")"); } } public void testMessage() { Contract c=new Contract(); TypeDefinition src=new TypeDefinition(); /* src.setName(TEST_TYPE_LP); src.setNamespace(TEST_TYPE_NS); src.setTypeSystem(TypeDefinition.XSD_TYPE); */ src.setName(TEST_TYPE_LP); src.setDataType(new QName(TEST_TYPE_NS,TEST_TYPE_LP).toString()); src.setTypeSystem(TypeSystem.XSD); src.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(src); Type t=new Type(); //t.getTypeDefinitions().add(src); t.setName(TEST_TYPE_LP); java.util.List<Type> refs=new java.util.Vector<Type>(); refs.add(t); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); java.util.List<javax.wsdl.Definition> defns=new java.util.Vector<javax.wsdl.Definition>(); QName msgname=new QName(HTTP_TEST_NAMESPACE,TEST_LOCALPART); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); javax.wsdl.Message result=gen.getMessage(defns, c, msgname, refs, new SOAPRPCWSDLBinding(), handler); if (result == null) { fail("Message is null"); } if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (result.getQName() == null) { fail("QName not set"); } if (result.getQName().getLocalPart() == null) { fail("QName localpart not set"); } if (TEST_LOCALPART.equals(result.getQName().getLocalPart()) == false) { fail("QName localpart not correct: "+result.getQName().getLocalPart()); } if (result.getQName().getNamespaceURI() == null) { fail("QName namespace not set"); } if (HTTP_TEST_NAMESPACE.equals(result.getQName().getNamespaceURI()) == false) { fail("QName namespace not correct: "+result.getQName().getNamespaceURI()); } if (result.getParts().size() != 1) { fail("Should be one part: "+result.getParts().size()); } Part part=(Part)result.getParts().values().toArray()[0]; if (part.getElementName() != null) { fail("Element name should not be set"); } if (part.getTypeName() == null) { fail("Type name not set"); } if (TEST_TYPE_NS.equals(part.getTypeName().getNamespaceURI()) == false) { fail("Type namespace incorrect: "+part.getTypeName().getNamespaceURI()); } if (TEST_TYPE_LP.equals(part.getTypeName().getLocalPart()) == false) { fail("Type localpart incorrect: "+part.getTypeName().getLocalPart()); } } public void testDefnWithPortTypesAndMesgsInDiffNamespaces() { Contract c=new Contract(); c.setNamespace(TEST_NAME_SPACE); c.setName(TEST_NAME); Interface i1=new Interface(); i1.setName("I1"); i1.setNamespace(TEST_NAME_SPACE); // Need to associate a message, to ensure port type // is generated OneWayRequestMEP m1=new OneWayRequestMEP(); m1.setOperation(TEST_NAME); Type tref1=new Type(); TypeDefinition ref1=new TypeDefinition(); ref1.setName(TEST_TYPE_LP); ref1.setDataType(new QName(TEST_NAME_SPACE,TEST_TYPE_LP).toString()); ref1.setTypeSystem(TypeSystem.XSD); ref1.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(ref1); /* tref1.getTypeDefinitions().add(ref1); ref1.setName(TEST_TYPE_LP); ref1.setNamespace(TEST_NAME_SPACE); ref1.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref1.setName(TEST_TYPE_LP); m1.getTypes().add(tref1); i1.getMessageExchangePatterns().add(m1); Interface i2=new Interface(); i2.setName("I2"); i2.setNamespace(TEST_NAME_SPACE2); OneWayRequestMEP m2=new OneWayRequestMEP(); m2.setOperation(TEST_NAME); Type tref2=new Type(); TypeDefinition ref2=new TypeDefinition(); ref2.setName(TEST_TYPE_LP2); ref2.setDataType(new QName(TEST_NAME_SPACE2,TEST_TYPE_LP).toString()); ref2.setTypeSystem(TypeSystem.XSD); ref2.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(ref2); /* tref2.getTypeDefinitions().add(ref2); ref2.setName(TEST_TYPE_LP); ref2.setNamespace(TEST_NAME_SPACE2); ref2.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref2.setName(TEST_TYPE_LP2); m2.getTypes().add(tref2); i2.getMessageExchangePatterns().add(m2); Interface i3=new Interface(); i3.setName("I3"); i3.setNamespace(TEST_NAME_SPACE2); OneWayRequestMEP m3=new OneWayRequestMEP(); m3.setOperation(TEST_NAME); Type tref3=new Type(); TypeDefinition ref3=new TypeDefinition(); ref3.setName(TEST_TYPE_LP3); ref3.setDataType(new QName(TEST_NAME_SPACE3,TEST_TYPE_LP).toString()); ref3.setTypeSystem(TypeSystem.XSD); ref3.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(ref3); /* tref3.getTypeDefinitions().add(ref3); ref3.setName(TEST_TYPE_LP); ref3.setNamespace(TEST_NAME_SPACE3); ref3.setTypeSystem(TypeDefinition.XSD_TYPE); */ tref3.setName(TEST_TYPE_LP3); m3.getTypes().add(tref3); i3.getMessageExchangePatterns().add(m3); c.getInterfaces().add(i1); c.getInterfaces().add(i2); c.getInterfaces().add(i3); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); java.util.List<javax.wsdl.Definition> defns=gen.generate(c, new SOAPRPCWSDLBinding(), handler); if (handler.hasErrors() || handler.hasWarnings()) { fail("Feedback handler has errors or warnings"); } if (defns.size() != 2) { fail("Two Definitions expected, but got: "+defns.size()); } javax.wsdl.Definition defn1=defns.get(0); if (defn1.getPortTypes().size() != 1) { fail("1: Number of port types ("+defn1.getPortTypes().size()+ ") does not match number expected (1)"); } if (defn1.getBindings().size() != 1) { fail("1: Number of port type bindings ("+defn1.getBindings().size()+ ") does not match number expected (1)"); } if (defn1.getMessages().size() != 1) { fail("1: Number of message ("+defn1.getMessages().size()+ ") does not match number expected (1)"); } javax.wsdl.Definition defn2=defns.get(1); if (defn2.getPortTypes().size() != 2) { fail("2: Number of port types ("+defn2.getPortTypes().size()+ ") does not match number expected (2)"); } if (defn2.getBindings().size() != 2) { fail("2: Number of port type bindings ("+defn2.getBindings().size()+ ") does not match number expected (2)"); } if (defn2.getMessages().size() != 1) { fail("2: Number of message ("+defn2.getMessages().size()+ ") does not match number expected (1)"); } // Check service only associated with the first defn if (defn1.getServices().size() != 1) { fail("First definition should only have 1 service: "+defn1.getServices().size()); } javax.wsdl.Service s=(javax.wsdl.Service) defn1.getServices().values().iterator().next(); if (s.getPorts().size() != 3) { fail("Should be 3 ports: "+s.getPorts().size()); } if (defn2.getServices().size() != 0) { fail("Second definition should not have any services: "+defn2.getServices().size()); } } public void testCreatePartTypeInDocLit() { javax.wsdl.Definition defn=null; try { javax.wsdl.factory.WSDLFactory fact= javax.wsdl.factory.WSDLFactory.newInstance(); defn = fact.newDefinition(); } catch(Exception e) { fail("Failed to get definition"); } Contract c=new Contract(); TypeDefinition src=new TypeDefinition(); QName qname=new QName(TEST_TYPE_NS,TEST_TYPE_LP); src.setName(TEST_TYPE_LP); src.setDataType(qname.toString()); src.setTypeSystem(TypeSystem.XSD); src.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(src); Type t=new Type(); //t.getTypeDefinitions().add(src); t.setName(TEST_TYPE_LP); java.util.List<Type> refs=new java.util.Vector<Type>(); refs.add(t); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); //java.util.List<javax.wsdl.Definition> defns=new java.util.Vector<javax.wsdl.Definition>(); //QName msgname=new QName(HTTP_TEST_NAMESPACE,TEST_LOCALPART); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); WSDLBinding wsdlBinding = new SOAPDocLitWSDLBinding(); javax.wsdl.Part part=gen.createPart(defn, src, qname, wsdlBinding, handler); if (part == null) { fail("Part is null"); } if (part.getElementName() != null) { fail("Element name should not be set"); } if (part.getTypeName() == null) { fail("Type name not set"); } if (TEST_TYPE_NS.equals(part.getTypeName().getNamespaceURI()) == false) { fail("Type namespace incorrect: "+part.getTypeName().getNamespaceURI()); } if (TEST_TYPE_LP.equals(part.getTypeName().getLocalPart()) == false) { fail("Type localpart incorrect: "+part.getTypeName().getLocalPart()); } if (handler.getIssues().size() != 1) { fail("Feedback handler should have 1 issue: "+handler.getIssues().size()); } IssueDetails issue=handler.getIssues().get(0); if (issue.getIssueType() != IssueType.Error) { fail("Issue is not an error"); } String mesg=MessageFormatter.format(java.util.PropertyResourceBundle.getBundle( "org.savara.wsdl.Messages"), "SAVARA-WSDL-00001", wsdlBinding.getName(), qname.toString()); if (issue.getMessage().equals(mesg) == false) { fail("Unexpected issue message: "+issue.getMessage()); } } public void testCreatePartTypeInRPC() { javax.wsdl.Definition defn=null; try { javax.wsdl.factory.WSDLFactory fact= javax.wsdl.factory.WSDLFactory.newInstance(); defn = fact.newDefinition(); } catch(Exception e) { fail("Failed to get definition"); } Contract c=new Contract(); TypeDefinition src=new TypeDefinition(); QName qname=new QName(TEST_TYPE_NS,TEST_TYPE_LP); src.setName(TEST_TYPE_LP); src.setDataType(qname.toString()); src.setTypeSystem(TypeSystem.XSD); src.getAnnotations().add(new Annotation(AnnotationDefinitions.XSD_TYPE)); c.getTypeDefinitions().add(src); Type t=new Type(); //t.getTypeDefinitions().add(src); t.setName(TEST_TYPE_LP); java.util.List<Type> refs=new java.util.Vector<Type>(); refs.add(t); WSDLGeneratorImpl gen=new WSDLGeneratorImpl(); DefaultFeedbackHandler handler=new DefaultFeedbackHandler(); WSDLBinding wsdlBinding = new SOAPRPCWSDLBinding(); javax.wsdl.Part part=gen.createPart(defn, src, qname, wsdlBinding, handler); if (part == null) { fail("Part is null"); } if (part.getElementName() != null) { fail("Element name should not be set"); } if (part.getTypeName() == null) { fail("Type name not set"); } if (TEST_TYPE_NS.equals(part.getTypeName().getNamespaceURI()) == false) { fail("Type namespace incorrect: "+part.getTypeName().getNamespaceURI()); } if (TEST_TYPE_LP.equals(part.getTypeName().getLocalPart()) == false) { fail("Type localpart incorrect: "+part.getTypeName().getLocalPart()); } if (handler.getIssues().size() != 0) { fail("Feedback handler should have 0 issues"); } } }