servicetests.java

来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 334 行 · 第 1/2 页

JAVA
334
字号
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.axis2.jaxws.description;

import java.net.URL;
import java.util.Iterator;
import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;
import javax.xml.ws.WebServiceException;

import junit.framework.TestCase;
import org.apache.axis2.jaxws.sample.addnumbers.AddNumbersPortType;
import org.apache.axis2.jaxws.spi.ServiceDelegate;

public class ServiceTests extends TestCase {
    private static String VALID_SERVICE_NAMESPACE = "http://org/test/addnumbers";
    private static String VALID_SERVICE_LOCALPART_1 = "AddNumbersService1";
    private static String VALID_SERVICE_LOCALPART_2 = "AddNumbersService2";
    private static String VALID_PORT_S1P1 = "AddNumbersPortS1P1";
    private static String VALID_PORT_S1P2 = "AddNumbersPortS1P2";
    private static String VALID_PORT_S1P3 = "AddNumbersPortS1P3";
    private static String VALID_PORT_S2P1 = "AddNumbersPortS2P1";
    private static String VALID_PORT_S2P2 = "AddNumbersPortS2P2";
    private static String VALID_PORT_S2P3 = "AddNumbersPortS2P3";
    private static String VALID_PORT_S2P4 = "AddNumbersPortS2P4";

    public void testInvalidServiceNamespace() {
        URL wsdlURL = DescriptionTestUtils2.getWSDLURL("WSDLMultiTests.wsdl");
        QName invalidServiceQN = new QName("invalidServiceNamespace", VALID_SERVICE_LOCALPART_1);
        try {
            Service invalidService = Service.create(wsdlURL, invalidServiceQN);
            fail("Created service with invalid namespace");
        }
        catch (WebServiceException ex) {
            // Expected code path
        }
        catch (Exception ex) {
            fail("Caught unexpected exception " + ex.toString());
        }
    }
    public void testInvalidServiceLocalPart() {
        URL wsdlURL = DescriptionTestUtils2.getWSDLURL("WSDLMultiTests.wsdl");
        QName invalidServiceQN = new QName(VALID_SERVICE_NAMESPACE, "invalidServiceName");
        try {
            Service invalidService = Service.create(wsdlURL, invalidServiceQN);
            fail("Created service with invalid namespace");
        }
        catch (WebServiceException ex) {
            // Expected code path
        }
        catch (Exception ex) {
            fail("Caught unexpected exception " + ex.toString());
        }
    }
    
    public void testValidSameService() {
        URL wsdlURL = DescriptionTestUtils2.getWSDLURL("WSDLMultiTests.wsdl");
        
        QName validService1QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_1);
        Service validService1 = Service.create(wsdlURL, validService1QN);
        assertNotNull(validService1);

        QName validService2QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_1);
        Service validService2 = Service.create(wsdlURL, validService2QN);
        assertNotNull(validService2);
        
    }

    public void testValidMultiServices() {
        URL wsdlURL = DescriptionTestUtils2.getWSDLURL("WSDLMultiTests.wsdl");
        
        QName validService1QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_1);
        Service validService1 = Service.create(wsdlURL, validService1QN);
        assertNotNull(validService1);

        QName validService2QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_2);
        Service validService2 = Service.create(wsdlURL, validService2QN);
        assertNotNull(validService2);
        assertNotSame(validService1, validService2);
        
    }
    
    public void testGetServiceDeclaredPorts() {
        URL wsdlURL = DescriptionTestUtils2.getWSDLURL("WSDLMultiTests.wsdl");

        QName service1QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_1);
        Service service1 = Service.create(wsdlURL, service1QN);
        assertNotNull(service1);
        ServiceDelegate service1Delegate = DescriptionTestUtils2.getServiceDelegate(service1);
        assertNotNull (service1Delegate);
        ServiceDescription service1Desc = service1Delegate.getServiceDescription();
        assertNotNull(service1Desc);
        List<QName> service1PortsList = service1Desc.getPorts();
        assertNotNull(service1PortsList);
        assertEquals(3, service1PortsList.size());
        Iterator<QName> service1PortIterator = service1.getPorts();
        assertQNameIteratorSameAsList(service1PortIterator, service1PortsList);

        QName service2QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_2);
        Service service2 = Service.create(wsdlURL, service2QN);
        assertNotNull(service2);
        ServiceDelegate service2Delegate = DescriptionTestUtils2.getServiceDelegate(service2);
        assertNotNull (service2Delegate);
        ServiceDescription service2Desc = service2Delegate.getServiceDescription();
        assertNotNull(service2Desc);
        List<QName> service2PortsList = service2Desc.getPorts();
        assertNotNull(service2PortsList);
        assertEquals(4, service2PortsList.size());
        Iterator<QName> service2PortIterator = service2.getPorts();
        assertQNameIteratorSameAsList(service2PortIterator, service2PortsList);
    }

    public void testGetServiceAddedPorts() {
        URL wsdlURL = DescriptionTestUtils2.getWSDLURL("WSDLMultiTests.wsdl");

        QName service1QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_1);
        Service service1 = Service.create(wsdlURL, service1QN);
        assertNotNull(service1);
        ServiceDelegate service1Delegate = DescriptionTestUtils2.getServiceDelegate(service1);
        assertNotNull (service1Delegate);
        ServiceDescription service1Desc = service1Delegate.getServiceDescription();
        assertNotNull(service1Desc);
        List<QName> service1PortsList = service1Desc.getPorts();
        assertNotNull(service1PortsList);
        assertEquals(3, service1PortsList.size());
        service1.addPort(new QName(VALID_SERVICE_NAMESPACE, "addedPortS1P1"), null, null);
        service1.addPort(new QName(VALID_SERVICE_NAMESPACE, "addedPortS1P2"), null, null);
        service1PortsList = service1Desc.getPorts();
        assertEquals(5, service1PortsList.size());
        Iterator<QName> service1PortIterator = service1.getPorts();
        assertQNameIteratorSameAsList(service1PortIterator, service1PortsList);

        QName service2QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_2);
        Service service2 = Service.create(wsdlURL, service2QN);
        assertNotNull(service2);
        ServiceDelegate service2Delegate = DescriptionTestUtils2.getServiceDelegate(service2);
        assertNotNull (service2Delegate);
        ServiceDescription service2Desc = service2Delegate.getServiceDescription();
        assertNotNull(service2Desc);
        List<QName> service2PortsList = service2Desc.getPorts();
        assertNotNull(service2PortsList);
        assertEquals(4, service2PortsList.size());
        service2.addPort(new QName(VALID_SERVICE_NAMESPACE, "addedPortS2P1"), null, null);
        service2.addPort(new QName(VALID_SERVICE_NAMESPACE, "addedPortS2P2"), null, null);
        service2PortsList = service2Desc.getPorts();
        assertEquals(6, service2PortsList.size());
        Iterator<QName> service2PortIterator = service2.getPorts();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?