/*
* 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.sample;
import java.util.ArrayList;
import java.util.List;
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.sample.dlwminArrays.IGenericService;
import org.apache.axis2.jaxws.sample.dlwminArrays.WSUser;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Holder;
import javax.xml.ws.Service;
/**
*
* Tests to verify Document/Literal Wrapped Minimal Scenarios
* Document/Literal Wrapped is a JAX-WS style.
* "Minimal" indicates that no wrapper beans are associated with the JAX-WS method.
* In most enterprise scenarios, wrapper beans are packaged with the JAX-WS application.
*/
public class DLWMinArrayTests extends AbstractTestCase {
private static final String NAMESPACE = "http://apache.org/axis2/jaxws/sample/dlwminArrays";
private static final QName QNAME_SERVICE = new QName(
NAMESPACE, "GenericService");
private static final QName QNAME_PORT = new QName(
NAMESPACE, "GenericServicePort");
private static final String URL_ENDPOINT = "http://localhost:6060/axis2/services/GenericService.GenericServicePort";
private static String FIRST = "first";
private static String SECOND = "second";
public static Test suite() {
return getTestSetup(new TestSuite(DLWMinArrayTests.class));
}
private IGenericService getProxy(String action) {
Service service = Service.create(QNAME_SERVICE);
IGenericService proxy = service.getPort(QNAME_PORT, IGenericService.class);
BindingProvider p = (BindingProvider) proxy;
p.getRequestContext().put(
BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
p.getRequestContext().put(
BindingProvider.SOAPACTION_URI_PROPERTY, action);
p.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, URL_ENDPOINT);
return proxy;
}
/**
* Test sayHello method
*/
public void testHello() throws Exception {
IGenericService proxy = getProxy("sayHello");
String me = "Scheu";
String response = proxy.sayHello(me);
assertTrue("Hello Scheu".equals(response));
// Try the call again
response = proxy.sayHello(me);
assertTrue("Hello Scheu".equals(response));
}
/**
* Test method that returns a String[]
*/
public void testGetSimpleArray() throws Exception {
IGenericService proxy = getProxy("getSimpleArray");
String[] response = proxy.getSimpleArray();
assertTrue(response != null);
assertTrue("Expected 2, Received " + response.length, response.length == 2);
assertTrue("The first response is: " + response[0], response.length == 2);
assertTrue(FIRST.equals(response[0]));
assertTrue(SECOND.equals(response[1]));
// Try the call again
response = proxy.getSimpleArray();
assertTrue(response != null);
assertTrue(response.length == 2);
assertTrue(FIRST.equals(response[0]));
assertTrue(SECOND.equals(response[1]));
}
/**
* Test method that returns a List<String>
*/
public void testGetSimpleList() throws Exception {
IGenericService proxy = getProxy("getSimpleList");
List<String> response = proxy.getSimpleList();
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue(FIRST.equals(response.get(0)));
assertTrue(SECOND.equals(response.get(1)));
// Try the call again
response = proxy.getSimpleList();
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue(FIRST.equals(response.get(0)));
assertTrue(SECOND.equals(response.get(1)));
}
/**
* Test method that returns a bean array (WSUser[])
*/
public void testGetComplexArray() throws Exception {
IGenericService proxy = getProxy("getComplexArray");
WSUser[] response = proxy.getComplexArray();
assertTrue(response != null);
assertTrue("Expected 2, Received " + response.length, response.length == 2);
assertTrue(FIRST.equals(response[0].getUserID()));
assertTrue(SECOND.equals(response[1].getUserID()));
// Try the call again
response = proxy.getComplexArray();
assertTrue(response != null);
assertTrue(response.length == 2);
assertTrue(FIRST.equals(response[0].getUserID()));
assertTrue(SECOND.equals(response[1].getUserID()));
}
/**
* Test method that returns a List of beans (List<WSUser>)
*/
public void testGetComplexList() throws Exception {
IGenericService proxy = getProxy("getComplexList");
List<WSUser> response = proxy.getComplexList();
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue(FIRST.equals(response.get(0).getUserID()));
assertTrue(SECOND.equals(response.get(1).getUserID()));
// Try the call again
response = proxy.getComplexList();
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue(FIRST.equals(response.get(0).getUserID()));
assertTrue(SECOND.equals(response.get(1).getUserID()));
}
/**
* Test method that echos a List of beans (List<WSUser>)
* Two items are echo'd.
*/
public void testEchoComplexList2() throws Exception {
IGenericService proxy = getProxy("echoComplexList");
List<WSUser> in = new ArrayList<WSUser>();
WSUser wsUser = new WSUser();
wsUser.setUserID("Hello");
in.add(wsUser);
wsUser = new WSUser();
wsUser.setUserID("World");
in.add(wsUser);
List<WSUser> response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue("Hello".equals(response.get(0).getUserID()));
assertTrue("World".equals(response.get(1).getUserID()));
// Try the call again
response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue("Hello".equals(response.get(0).getUserID()));
assertTrue("World".equals(response.get(1).getUserID()));
}
/**
* Test method that echos a List of beans (List<WSUser>)
* One item is echo'd.
*/
public void testEchoComplexList1() throws Exception {
IGenericService proxy = getProxy("echoComplexList");
List<WSUser> in = new ArrayList<WSUser>();
WSUser wsUser = new WSUser();
wsUser.setUserID("Hello");
in.add(wsUser);
List<WSUser> response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 1);
assertTrue("Hello".equals(response.get(0).getUserID()));
// Try the call again
response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 1);
assertTrue("Hello".equals(response.get(0).getUserID()));
}
/**
* Test method that echos a List of beans (List<WSUser>)
* The list contains no items.
*/
public void testEchoComplexList0() throws Exception {
IGenericService proxy = getProxy("echoComplexList");
List<WSUser> in = new ArrayList<WSUser>();
List<WSUser> response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 0);
// Try the call again
response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 0);
}
/**
* Test method that echos a List of beans (List<WSUser>)
* The list contains no items.
*/
public void testEchoComplexListNull() throws Exception {
IGenericService proxy = getProxy("echoComplexList");
// There really is no discernible difference between
// an empty array and null over the wire. Sometimes users
// will pass in a null on the client or server.
List<WSUser> response = proxy.echoComplexList(null);
assertTrue(response != null);
assertTrue(response.size() == 0);
// Try the call again
response = proxy.echoComplexList(null);
assertTrue(response != null);
assertTrue(response.size() == 0);
// Now try force the server to return a null argument
List<WSUser> in = new ArrayList<WSUser>();
WSUser wsUser = new WSUser();
wsUser.setUserID("FORCENULL");
in.add(wsUser);
response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 0);
// Try the call again
response = proxy.echoComplexList(in);
assertTrue(response != null);
assertTrue(response.size() == 0);
}
/**
* Test method that echos a List of beans (List<WSUser>)
* and echos a List<String> as an inout parameter.
* 2 WSUsers are echo'd
* 2 Strings are echo'd
*/
public void testEcho22() throws Exception {
IGenericService proxy = getProxy("echo");
List<WSUser> in = new ArrayList<WSUser>();
WSUser wsUser = new WSUser();
wsUser.setUserID("James Bond");
in.add(wsUser);
wsUser = new WSUser();
wsUser.setUserID("Dr. Evil");
in.add(wsUser);
List<String> id_in = new ArrayList<String>();
id_in.add("jbond");
id_in.add("evil");
Holder<List<String>> inout = new Holder<List<String>>(id_in);
List<WSUser> response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue("James Bond".equals(response.get(0).getUserID()));
assertTrue("Dr. Evil".equals(response.get(1).getUserID()));
List<String> id_out = inout.value;
assertTrue(id_out.size() == 2);
assertTrue("JBOND".equals(id_out.get(0)));
assertTrue("EVIL".equals(id_out.get(1)));
// Try the call again
inout = new Holder<List<String>>(id_in);
response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 2);
assertTrue("James Bond".equals(response.get(0).getUserID()));
assertTrue("Dr. Evil".equals(response.get(1).getUserID()));
id_out = inout.value;
assertTrue(id_out.size() == 2);
assertTrue("JBOND".equals(id_out.get(0)));
assertTrue("EVIL".equals(id_out.get(1)));
}
/**
* Test method that echos a List of beans (List<WSUser>)
* and echos a List<String> as an inout parameter.
* 1 WSUsers is echo'd
* 1 Strings is echo'd
*/
public void testEcho11() throws Exception {
IGenericService proxy = getProxy("echo");
List<WSUser> in = new ArrayList<WSUser>();
WSUser wsUser = new WSUser();
wsUser.setUserID("James Bond");
in.add(wsUser);
List<String> id_in = new ArrayList<String>();
id_in.add("jbond");
Holder<List<String>> inout = new Holder<List<String>>(id_in);
List<WSUser> response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 1);
assertTrue("James Bond".equals(response.get(0).getUserID()));
List<String> id_out = inout.value;
assertTrue(id_out.size() == 1);
assertTrue("JBOND".equals(id_out.get(0)));
// Try the call again
inout = new Holder<List<String>>(id_in);
response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 1);
assertTrue("James Bond".equals(response.get(0).getUserID()));
id_out = inout.value;
assertTrue(id_out.size() == 1);
assertTrue("JBOND".equals(id_out.get(0)));
}
/**
* Test method that echos a List of beans (List<WSUser>)
* and echos a List<String> as an inout parameter.
* 1 WSUsers is echo'd
* 0 Strings are echo'd
*/
public void testEcho10() throws Exception {
IGenericService proxy = getProxy("echo");
List<WSUser> in = new ArrayList<WSUser>();
WSUser wsUser = new WSUser();
wsUser.setUserID("James Bond");
in.add(wsUser);
List<String> id_in = new ArrayList<String>();
Holder<List<String>> inout = new Holder<List<String>>(id_in);
List<WSUser> response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 1);
assertTrue("James Bond".equals(response.get(0).getUserID()));
List<String> id_out = inout.value;
assertTrue(id_out.size() == 0);
// Try the call again
inout = new Holder<List<String>>(id_in);
response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 1);
assertTrue("James Bond".equals(response.get(0).getUserID()));
id_out = inout.value;
assertTrue(id_out.size() == 0);
}
/**
* Test method that echos a List of beans (List<WSUser>)
* and echos a List<String> as an inout parameter.
* 0 WSUsers are echo'd
* 1 Strings is echo'd
*/
public void testEcho01() throws Exception {
IGenericService proxy = getProxy("echo");
List<WSUser> in = new ArrayList<WSUser>();
List<String> id_in = new ArrayList<String>();
id_in.add("jbond");
Holder<List<String>> inout = new Holder<List<String>>(id_in);
List<WSUser> response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 0);
List<String> id_out = inout.value;
assertTrue(id_out.size() == 1);
assertTrue("JBOND".equals(id_out.get(0)));
// Try the call again
inout = new Holder<List<String>>(id_in);
response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 0);
id_out = inout.value;
assertTrue(id_out.size() == 1);
assertTrue("JBOND".equals(id_out.get(0)));
}
/**
* Test method that echos a List of beans (List<WSUser>)
* and echos a List<String> as an inout parameter.
* 0 WSUsers are echo'd
* 0 Strings are echo'd
*/
public void testEcho00() throws Exception {
IGenericService proxy = getProxy("echo");
List<WSUser> in = new ArrayList<WSUser>();
List<String> id_in = new ArrayList<String>();
Holder<List<String>> inout = new Holder<List<String>>(id_in);
List<WSUser> response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 0);
List<String> id_out = inout.value;
assertTrue(id_out.size() == 0);
// Try the call again
inout = new Holder<List<String>>(id_in);
response = proxy.echo(in, inout);
assertTrue(response != null);
assertTrue(response.size() == 0);
id_out = inout.value;
assertTrue(id_out.size() == 0);
}
}