servicetests.java

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

JAVA
334
字号
        assertQNameIteratorSameAsList(service2PortIterator, service2PortsList);
    }
    
    public void testGetServiceDeclaredPortsAfterGetPort() {
        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());
        AddNumbersPortType addNumbersPortS1P1 = service1.getPort(new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S1P1), AddNumbersPortType.class); 
        service1PortsList = service1Desc.getPorts();
        assertEquals(3, service1PortsList.size());
        AddNumbersPortType addNumbersPortS1P3 = service1.getPort(new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S1P3), AddNumbersPortType.class); 
        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());
        AddNumbersPortType addNumbersPortS2P1 = service2.getPort(new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S2P1), AddNumbersPortType.class); 
        service2PortsList = service2Desc.getPorts();
        assertEquals(4, service2PortsList.size());
        AddNumbersPortType addNumbersPortS2P3 = service2.getPort(new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S2P3), AddNumbersPortType.class); 
        assertEquals(4, service2PortsList.size());
        AddNumbersPortType addNumbersPortS2P4 = service2.getPort(new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S2P4), AddNumbersPortType.class); 
        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();
        assertQNameIteratorSameAsList(service2PortIterator, service2PortsList);
    }
    
    public void testDynamicService() {
        QName service1QN = new QName(VALID_SERVICE_NAMESPACE, "DynamicService1");
        Service service1 = Service.create(null, service1QN);
        assertNotNull(service1);
        ServiceDelegate service1Delegate = DescriptionTestUtils2.getServiceDelegate(service1);
        assertNotNull (service1Delegate);
        ServiceDescription service1Desc = service1Delegate.getServiceDescription();
        assertNotNull(service1Desc);
        List<QName> service1PortsList = service1Desc.getPorts();
        assertNotNull(service1PortsList);
        assertTrue(service1PortsList.isEmpty());
        assertEquals(0, service1PortsList.size());
        AddNumbersPortType addNumbersPortS1P1 = service1.getPort(new QName(VALID_SERVICE_NAMESPACE, "dynamicPortS1P1"), AddNumbersPortType.class); 
        service1PortsList = service1Desc.getPorts();
        assertEquals(1, service1PortsList.size());
        AddNumbersPortType addNumbersPortS1P3 = service1.getPort(new QName(VALID_SERVICE_NAMESPACE, "dynamicPortS1P2"), AddNumbersPortType.class); 
        service1PortsList = service1Desc.getPorts();
        assertEquals(2, 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(4, service1PortsList.size());
        Iterator<QName> service1PortIterator = service1.getPorts();
        assertQNameIteratorSameAsList(service1PortIterator, service1PortsList);
    }
    
    public void testCreateDispatchWSDL() {
        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);
        // Create Dispatch should work on a WSDL declared port prior to a getPort
        // and again after the call to getPort
        QName validPortQName = new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S1P1);
        Dispatch<String> dispatch = service1.createDispatch(validPortQName, String.class, null);
        assertNotNull(dispatch);
        AddNumbersPortType addNumbersPortS1P1 = service1.getPort(validPortQName, AddNumbersPortType.class);
        assertNotNull(addNumbersPortS1P1);
        
        // Create Dispatch should NOT work on a dynamic port that has not been added yet
        // but should work after it has been added
        QName addedPort = new QName(VALID_SERVICE_NAMESPACE, "addedPortS1P1");
        try {
            Dispatch<String> dispatch2 = service1.createDispatch(addedPort, String.class, null);
            fail("Create Dispatch on non-existant port should have thrown an exception");
        }
        catch (WebServiceException ex) {
            // Expected path
        }
        catch (Exception ex) {
            fail("Unexpected exception thrown " + ex.toString());
        }
        service1.addPort(addedPort, null, null);
        Dispatch<String> dispatch2 = service1.createDispatch(addedPort, String.class, null);
        assertNotNull(dispatch2);

    }
    
    public void testCreateDispatchNoWSDL() {
        
        // Note that this test is intentionally using the same names as the WSDL test, even though no WSDL is
        // provided.  This is to verify that using the same names in the abscense of WSDL doesn't cause any
        // issues.
        
        QName service1QN = new QName(VALID_SERVICE_NAMESPACE, VALID_SERVICE_LOCALPART_1);
        Service service1 = Service.create(service1QN);
        assertNotNull(service1);
        // Create Dispatch should NOT work on a dynamic port prior to a getPort
        // but should work after the getPort causes the port to be added.
        QName validPortQName = new QName(VALID_SERVICE_NAMESPACE, VALID_PORT_S1P1);
        try {
            Dispatch<String> dispatch = service1.createDispatch(validPortQName, String.class, null);
            fail("Create Dispatch on non-existant port should have thrown and exception");
        }
        catch (WebServiceException ex) {
            // Expected path
        }
        catch (Exception ex) {
            fail("Unexpected exception thrown " + ex.toString());
        }
        AddNumbersPortType addNumbersPortS1P1 = service1.getPort(validPortQName, AddNumbersPortType.class);
        Dispatch<String> dispatch = service1.createDispatch(validPortQName, String.class, null);
        assertNotNull(dispatch);

        // Create Dispatch should NOT work on a dynamic port that has not been added yet
        // but should work after it has been added
        QName addedPort = new QName(VALID_SERVICE_NAMESPACE, "addedPortS1P1");
        try {
            Dispatch<String> dispatch2 = service1.createDispatch(addedPort, String.class, null);
            fail("Create Dispatch on non-existant port should have thrown an exception");
        }
        catch (WebServiceException ex) {
            // Expected path
        }
        catch (Exception ex) {
            fail("Unexpected exception thrown " + ex.toString());
        }
        service1.addPort(addedPort, null, null);
        Dispatch<String> dispatch2 = service1.createDispatch(addedPort, String.class, null);
        assertNotNull(dispatch2);
    }
    
    private void assertQNameIteratorSameAsList(Iterator<QName> iterator, List<QName> list) {
        int iteratorSize = 0;
        for (QName iteratorElement = null; iterator.hasNext(); ) { 
            iteratorElement = iterator.next();
            iteratorSize++;
            assertTrue(list.contains(iteratorElement));
        }
        assertEquals(list.size(), iteratorSize);
    }
}

⌨️ 快捷键说明

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