Package org.codehaus.xfire.wsdl11

Source Code of org.codehaus.xfire.wsdl11.WSDLServiceBuilderTest

package org.codehaus.xfire.wsdl11;

import java.util.Collection;

import javax.xml.namespace.QName;

import org.codehaus.xfire.service.Endpoint;
import org.codehaus.xfire.service.MessageInfo;
import org.codehaus.xfire.service.MessagePartInfo;
import org.codehaus.xfire.service.OperationInfo;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.MessageBindingProvider;
import org.codehaus.xfire.soap.AbstractSoapBinding;
import org.codehaus.xfire.test.AbstractXFireTest;
import org.codehaus.xfire.wsdl11.parser.WSDLServiceBuilder;

/**
* @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
*/
public class WSDLServiceBuilderTest
    extends AbstractXFireTest
{
    public void testVisitor()
        throws Exception
    {
        WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echo.wsdl"));
        builder.setBindingProvider(new MessageBindingProvider());
        builder.build();
       
        Collection services = builder.getAllServices();       
        assertEquals(1, services.size());
       
        Service service = (Service) services.iterator().next();
       
        QName name = service.getName();
        assertNotNull(name);
        assertEquals(new QName("urn:Echo", "Echo"), name);
       
        Collection operations = service.getServiceInfo().getOperations();
        assertEquals(1, operations.size());
       
        OperationInfo opInfo = (OperationInfo) operations.iterator().next();
        assertEquals("echo", opInfo.getName());
       
        // Check the input message
        MessageInfo message = opInfo.getInputMessage();
        assertNotNull(message);
       
        Collection parts = message.getMessageParts();
        assertEquals(1, parts.size());
       
        MessagePartInfo part = (MessagePartInfo) parts.iterator().next();
        assertEquals(new QName("urn:Echo", "echoRequest"), part.getName());
       
        // Check the output message
        message = opInfo.getOutputMessage();
        assertNotNull(message);
       
        parts = message.getMessageParts();
        assertEquals(1, parts.size());
       
        part = (MessagePartInfo) parts.iterator().next();
        assertEquals(new QName("urn:Echo", "echoResponse"), part.getName());
       
        // Is the SOAP binding stuff around?
        AbstractSoapBinding soapOp = (AbstractSoapBinding) service.getBindings().iterator().next();
        assertNotNull(soapOp);
        assertEquals("literal", soapOp.getUse());
        assertEquals("", soapOp.getSoapAction(opInfo));
       
        Collection endpoints = service.getEndpoints();
        assertEquals(1, endpoints.size());
       
        Endpoint endpoint = (Endpoint) endpoints.iterator().next();
        assertEquals(new QName("urn:Echo", "EchoHttpPort"), endpoint.getName());
        assertNotNull(endpoint.getBinding());
        assertEquals("http://localhost:8080/xfire/services/Echo", endpoint.getUrl());
    }
   
    public void testUnknownBinding()
        throws Exception
    {
        WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echoHttp.wsdl"));
        builder.setBindingProvider(new MessageBindingProvider());
        builder.build();
       
        Collection services = builder.getAllServices();       
        assertEquals(1, services.size());
       
        Service service = (Service) services.iterator().next();
       
        QName name = service.getName();
        assertNotNull(name);
        assertEquals(new QName("urn:Echo", "Echo"), name);
       
        Collection operations = service.getServiceInfo().getOperations();
        assertEquals(1, operations.size());
    }
   
    public void testSimpleType()
        throws Exception
    {
        WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echoSimpleType.wsdl"));
        builder.setBindingProvider(new MessageBindingProvider());
        builder.build();
       
        Collection services = builder.getAllServices();       
        assertEquals(1, services.size());
       
        Service service = (Service) services.iterator().next();
       
        assertFalse(service.getServiceInfo().isWrapped());
       
        QName name = service.getName();
        assertNotNull(name);
        assertEquals(new QName("urn:Echo", "Echo"), name);
       
        Collection operations = service.getServiceInfo().getOperations();
        assertEquals(1, operations.size());
       
        OperationInfo opInfo = service.getServiceInfo().getOperation("echo");
       
        // Check the input message
        MessageInfo message = opInfo.getInputMessage();
        assertNotNull(message);
       
        Collection parts = message.getMessageParts();
        assertEquals(1, parts.size());
    }
   
    public void testEmptyWrappedResponse()
        throws Exception
    {
        WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("emptyWrappedResponse.wsdl"));
        builder.setBindingProvider(new MessageBindingProvider());
        builder.build();
       
        Collection services = builder.getAllServices();       
        assertEquals(1, services.size());
       
        Service service = (Service) services.iterator().next();
       
        assertTrue(service.getServiceInfo().isWrapped());
       
        QName name = service.getName();
        assertNotNull(name);
        assertEquals(new QName("urn:Echo", "Echo"), name);
       
        Collection operations = service.getServiceInfo().getOperations();
        assertEquals(1, operations.size());
       
        OperationInfo opInfo = service.getServiceInfo().getOperation("doInvokeNoResponseElements");

        MessageInfo message = opInfo.getOutputMessage();
        assertNotNull(message);
       
        Collection parts = message.getMessageParts();
        assertEquals(0, parts.size());
    }
    public void testSimpleVisitor()
        throws Exception
    {
        WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echoSimple.wsdl"));
        builder.setBindingProvider(new MessageBindingProvider());
        builder.build();
       
        Collection services = builder.getAllServices();       
        assertEquals(1, services.size());
       
        Service service = (Service) services.iterator().next();
       
        QName name = service.getName();
        assertNotNull(name);
        assertEquals(new QName("urn:Echo", "Echo"), name);
       
        Collection operations = service.getServiceInfo().getOperations();
        assertEquals(1, operations.size());
       
        OperationInfo opInfo = (OperationInfo) operations.iterator().next();
        assertEquals("echo", opInfo.getName());
       
        // Check the input message
        MessageInfo message = opInfo.getInputMessage();
        assertNotNull(message);
       
        Collection parts = message.getMessageParts();
        assertEquals(1, parts.size());
    }
   
    public void testXsdChoice()
      throws Exception
  {
      WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echo-xsd-choice.wsdl"));
      builder.setBindingProvider(new MessageBindingProvider());
      builder.build();
     
      Collection services = builder.getAllServices();       
      assertEquals(1, services.size());
     
      Service service = (Service) services.iterator().next();
     
      QName name = service.getName();
      assertNotNull(name);
      assertEquals(new QName("urn:echo:wrapped", "Echo"), name);
     
      Collection operations = service.getServiceInfo().getOperations();
      assertEquals(1, operations.size());
     
      OperationInfo opInfo = (OperationInfo) operations.iterator().next();
      assertEquals("echo", opInfo.getName());
     
      // Check the input message
      MessageInfo message = opInfo.getInputMessage();
      assertNotNull(message);
     
      Collection parts = message.getMessageParts();
      assertEquals(1, parts.size());
  }
   
    public void testUnboundedResponse()
      throws Exception
  {
      WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echoWrappedList.wsdl"));
      builder.setBindingProvider(new MessageBindingProvider());
      builder.build();
     
      Collection services = builder.getAllServices();       
      assertEquals(1, services.size());
     
      Service service = (Service) services.iterator().next();
     
      QName name = service.getName();
      assertNotNull(name);
      assertEquals(new QName("urn:Echo", "Echo"), name);
     
      Collection operations = service.getServiceInfo().getOperations();
      assertEquals(1, operations.size());
     
      OperationInfo opInfo = (OperationInfo) operations.iterator().next();
      assertEquals("echo", opInfo.getName());
     
      // Check the input message
      MessageInfo message = opInfo.getInputMessage();
      assertNotNull(message);
     
      Collection parts = message.getMessageParts();
      assertEquals(1, parts.size());
     
      MessagePartInfo part = (MessagePartInfo) parts.iterator().next();
      assertEquals("text", part.getName().getLocalPart());
  }
   

    public void testAnonymousInner()
      throws Exception
  {
      WSDLServiceBuilder builder = new WSDLServiceBuilder(getResourceAsStream("echoAnonymousType.wsdl"));
      builder.setBindingProvider(new MessageBindingProvider());
      builder.build();
     
      Collection services = builder.getAllServices();       
      assertEquals(1, services.size());
     
      Service service = (Service) services.iterator().next();
     
      QName name = service.getName();
      assertNotNull(name);
      assertEquals(new QName("urn:Echo", "Echo"), name);
     
      Collection operations = service.getServiceInfo().getOperations();
      assertEquals(1, operations.size());
     
      OperationInfo opInfo = (OperationInfo) operations.iterator().next();
      assertEquals("echo", opInfo.getName());
     
      // Check the input message
      MessageInfo message = opInfo.getInputMessage();
      assertNotNull(message);
     
      Collection parts = message.getMessageParts();
      assertEquals(1, parts.size());
     
      MessagePartInfo part = (MessagePartInfo) parts.iterator().next();
      assertEquals("echo", part.getName().getLocalPart());
  }
}
TOP

Related Classes of org.codehaus.xfire.wsdl11.WSDLServiceBuilderTest

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.