/* * 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.proxy; import junit.framework.Test; import junit.framework.TestSuite; import org.apache.axis2.jaxws.TestLogger; import org.apache.axis2.jaxws.framework.AbstractTestCase; import org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei.DocLitnonWrappedProxy; import org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei.ProxyDocLitUnwrappedService; import org.test.proxy.doclitnonwrapped.Invoke; import org.test.proxy.doclitnonwrapped.ObjectFactory; import org.test.proxy.doclitnonwrapped.ReturnType; import javax.xml.namespace.QName; import javax.xml.ws.AsyncHandler; import javax.xml.ws.BindingProvider; import javax.xml.ws.Service; import java.io.File; import java.net.URL; import java.util.concurrent.Future; /** * This test cases will use proxy NON wrapped wsdl to invoke methods * on a deployed Server Endpoint. */ public class ProxyNonWrappedTests extends AbstractTestCase { QName serviceName = new QName("http://doclitnonwrapped.proxy.test.org", "ProxyDocLitUnwrappedService"); private String axisEndpoint = "http://localhost:6060/axis2/services/ProxyDocLitUnwrappedService.DocLitnonWrappedImplPort"; private QName portName = new QName("http://org.apache.axis2.proxy.doclitwrapped", "ProxyDocLitWrappedPort"); private String wsdlLocation = System.getProperty("basedir",".")+"/"+"test-resources/wsdl/ProxyDocLitnonWrapped.wsdl"; public static Test suite() { return getTestSetup(new TestSuite(ProxyNonWrappedTests.class)); } public void testInvoke(){ TestLogger.logger.debug("-----------------------------------"); TestLogger.logger.debug("test: " + getName()); TestLogger.logger.debug(">>Testing Sync Inovoke on Proxy DocLit non-wrapped"); ObjectFactory factory = new ObjectFactory(); Invoke invokeObj = factory.createInvoke(); invokeObj.setInvokeStr("test request for twoWay Operation"); Service service = Service.create(null, serviceName); assertNotNull(service); DocLitnonWrappedProxy proxy = service.getPort(portName, DocLitnonWrappedProxy.class); assertNotNull(proxy); BindingProvider p = (BindingProvider)proxy; p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,axisEndpoint); ReturnType response = proxy.invoke(invokeObj); assertNotNull(response); TestLogger.logger.debug(">>Response =" + response.getReturnStr()); // Try again to verify response = proxy.invoke(invokeObj); assertNotNull(response); TestLogger.logger.debug(">>Response =" + response.getReturnStr()); TestLogger.logger.debug("-------------------------------------"); } public void testNullInvoke(){ TestLogger.logger.debug("-----------------------------------"); TestLogger.logger.debug("test: " + getName()); TestLogger.logger.debug(">>Testing Sync Invoke on Proxy DocLit bare with a null parameter"); ObjectFactory factory = new ObjectFactory(); Invoke invokeObj = null; Service service = Service.create(null, serviceName); assertNotNull(service); DocLitnonWrappedProxy proxy = service.getPort(portName, DocLitnonWrappedProxy.class); assertNotNull(proxy); BindingProvider p = (BindingProvider)proxy; p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,axisEndpoint); ReturnType response = proxy.invoke(invokeObj); assertNull(response); // Try again response = proxy.invoke(invokeObj); assertNull(response); TestLogger.logger.debug("-------------------------------------"); } public void testInvokeAsyncCallback(){ try{ TestLogger.logger.debug("---------------------------------------"); TestLogger.logger.debug("DocLitNonWrapped test case: " + getName()); //Create wsdl url File wsdl= new File(wsdlLocation); URL wsdlUrl = wsdl.toURL(); ObjectFactory factory = new ObjectFactory(); //create input object to web service operation Invoke invokeObj = factory.createInvoke(); invokeObj.setInvokeStr("test request for twoWay Async Operation"); //Create Service ProxyDocLitUnwrappedService service = new ProxyDocLitUnwrappedService(wsdlUrl, serviceName); //Create proxy DocLitnonWrappedProxy proxy = service.getProxyDocLitnonWrappedPort(); TestLogger.logger.debug(">>Invoking Binding Provider property"); //Setup Endpoint url -- optional. BindingProvider p = (BindingProvider)proxy; p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,axisEndpoint); TestLogger.logger.debug(">> Invoking Proxy Asynchronous Callback"); AsyncHandler<ReturnType> handler = new AsyncCallback(); //Invoke operation Asynchronously. Future<?> monitor = proxy.invokeAsync(invokeObj, handler); while(!monitor.isDone()){ Thread.sleep(1000); } // Try again TestLogger.logger.debug(">> Invoking Proxy Asynchronous Callback"); handler = new AsyncCallback(); //Invoke operation Asynchronously. monitor = proxy.invokeAsync(invokeObj, handler); while(!monitor.isDone()){ Thread.sleep(1000); } TestLogger.logger.debug("---------------------------------------"); }catch(Exception e){ e.printStackTrace(); fail("Exception received" + e); } } public void testInvokeAsyncPolling(){ } }