You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by jo...@apache.org on 2005/03/23 03:24:30 UTC
cvs commit: ws-axis/java/test/wsdl/arrays3 AddrBookServiceImpl.java Phone.java build.xml AddressBookImpl.java AddrBookService.java AddrBookServiceImplServiceTestCase.java Address.java StateType.java
jongjinchoi 2005/03/22 18:24:30
Added: java/test/wsdl/arrays3 AddrBookServiceImpl.java Phone.java
build.xml AddressBookImpl.java AddrBookService.java
AddrBookServiceImplServiceTestCase.java
Address.java StateType.java
Log:
add testcase for AXIS-1891
Revision Changes Path
1.1 ws-axis/java/test/wsdl/arrays3/AddrBookServiceImpl.java
Index: AddrBookServiceImpl.java
===================================================================
package test.wsdl.arrays3;
public class AddrBookServiceImpl implements AddrBookService {
AddressBookImpl addressBook;
public AddrBookServiceImpl() {
addressBook = new AddressBookImpl();
}
public void addEntry(String name, Address address) {
addressBook.addEntry(name, address);
}
public Address[] getAddressFromNames(String[] name) {
return addressBook.getAddressFromNames(name);
}
public Address getAddressFromName(String name) {
return addressBook.getAddressFromName(name);
}
public Address[] echoAddresses(Address[] addrs) {
return addrs;
}
}
1.1 ws-axis/java/test/wsdl/arrays3/Phone.java
Index: Phone.java
===================================================================
package test.wsdl.arrays3;
public class Phone implements java.io.Serializable {
private int areaCode;
private java.lang.String exchange;
private java.lang.String number;
public Phone() {
}
/**
* Gets the areaCode value for this Phone.
*
* @return areaCode
*/
public int getAreaCode() {
return areaCode;
}
/**
* Sets the areaCode value for this Phone.
*
* @param areaCode
*/
public void setAreaCode(int areaCode) {
this.areaCode = areaCode;
}
/**
* Gets the exchange value for this Phone.
*
* @return exchange
*/
public java.lang.String getExchange() {
return exchange;
}
/**
* Sets the exchange value for this Phone.
*
* @param exchange
*/
public void setExchange(java.lang.String exchange) {
this.exchange = exchange;
}
/**
* Gets the number value for this Phone.
*
* @return number
*/
public java.lang.String getNumber() {
return number;
}
/**
* Sets the number value for this Phone.
*
* @param number
*/
public void setNumber(java.lang.String number) {
this.number = number;
}
}
1.1 ws-axis/java/test/wsdl/arrays3/build.xml
Index: build.xml
===================================================================
<?xml version="1.0" ?>
<!DOCTYPE project [
<!ENTITY properties SYSTEM "file:../../../xmls/properties.xml">
<!ENTITY paths SYSTEM "file:../../../xmls/path_refs.xml">
<!ENTITY taskdefs SYSTEM "file:../../../xmls/taskdefs.xml">
<!ENTITY taskdefs_post_compile SYSTEM "file:../../../xmls/taskdefs_post_compile.xml">
<!ENTITY targets SYSTEM "file:../../../xmls/targets.xml">
]>
<!-- ===================================================================
<description>
Test/Sample Component file for Axis
Notes:
This is a build file for use with the Jakarta Ant build tool.
Prerequisites:
jakarta-ant from http://jakarta.apache.org
Build Instructions:
To compile
ant compile
To execute
ant run
Author:
Matt Seibert mseibert@us.ibm.com
Copyright:
Copyright (c) 2002-2003 Apache Software Foundation.
</description>
==================================================================== -->
<project default="compile">
<property name="axis.home" location="../../.." />
<property name="componentName" value="test/wsdl/arrays3" />
&properties;
&paths;
&taskdefs;
&taskdefs_post_compile;
&targets;
<target name="clean">
<echo message="Removing ${build.dir}/classes/${componentName} and ${build.dir}/work/${componentName}" />
<delete dir="${build.dir}/classes/${componentName}"/>
<delete dir="${build.dir}/work/${componentName}"/>
</target>
<target name="copy" depends="setenv"/>
<target name="compile" depends="copy">
<echo message="Compiling test.wsdl.arrays3"/>
<!-- arrays3 Test -->
<!-- To test Java Value Types, copy over the base and subclasses -->
<copy todir="${build.dir}/work/test/wsdl/arrays3" overwrite="yes">
<fileset dir="${test.dir}/wsdl/arrays3">
<include name="*.java"/>
</fileset>
</copy>
<!-- Compile the Web Service -->
<javac srcdir="${build.dir}/work" destdir="${build.dest}" debug="${debug}" nowarn="${nowarn}" source="${source}" fork="${javac.fork}">
<classpath refid="classpath" />
<include name="test/wsdl/arrays3/**.java" />
<exclude name="test/wsdl/arrays3/*TestCase.java" />
</javac>
<!-- Now create the wsdd and server-side java classes (helpers, ArrayOfPhones) -->
<mkdir dir="${build.dir}/work/test/wsdl/arrays3/generated"/>
<java2wsdl output="${axis.home}/build/work/test/wsdl/arrays3/generated/arrays3.wsdl"
className= "test.wsdl.arrays3.AddrBookServiceImpl"
useInheritedMethods="false"
namespace="http://arrays3.test"
location="http://localhost:8080/axis/services/arrays3"
style="WRAPPED"
use="literal"
deploy="true">
<mapping namespace="http://arrays3.test" package="test.wsdl.arrays3"/>
</java2wsdl>
<copy todir="${build.dir}/work/test/wsdl/arrays3" overwrite="yes">
<fileset dir="${build.dir}/work/test/wsdl/arrays3/generated">
<include name="**/*.wsdd"/>
</fileset>
</copy>
<!-- Generate java files of the client side from the new WSDL -->
<wsdl2java url="${axis.home}/build/work/test/wsdl/arrays3/generated/arrays3.wsdl"
output="${axis.home}/build/work"
verbose="no"
testcase="no">
<mapping namespace="http://arrays3.test" package="test.wsdl.arrays3.testclient"/>
</wsdl2java>
<copy todir="${build.dir}/work/test/wsdl/arrays3" overwrite="yes">
<fileset dir="${axis.home}/test/wsdl/arrays3">
<include name="*TestCase.java"/>
</fileset>
</copy>
<javac srcdir="${build.dir}/work" destdir="${build.dest}" nowarn="${nowarn}" source="${source}" fork="${javac.fork}"
debug="${debug}">
<classpath refid="classpath" />
<include name="test/wsdl/arrays3/*TestCase.java" />
<include name="test/wsdl/arrays3/testclient/*.java" />
<include name="test/wsdl/arrays3/generated/**/*.java" />
</javac>
</target>
<target name="run" >
<antcall target="execute-Component" />
</target>
</project>
1.1 ws-axis/java/test/wsdl/arrays3/AddressBookImpl.java
Index: AddressBookImpl.java
===================================================================
package test.wsdl.arrays3;
import java.util.Hashtable;
import java.util.Map;
public class AddressBookImpl
{
private static Map addresses = new Hashtable();
public void addEntry(String name, Address address)
{
this.addresses.put(name, address);
}
public Address getAddressFromName(String name)
{
return (Address) this.addresses.get(name);
}
public Address[] getAddressFromNames(String[] name) {
if (name == null) return null;
Address[] result = new Address[name.length];
for(int i=0; i< name.length; i++) {
result[i] = getAddressFromName(name[i]);
}
return result;
}
}
1.1 ws-axis/java/test/wsdl/arrays3/AddrBookService.java
Index: AddrBookService.java
===================================================================
package test.wsdl.arrays3;
public interface AddrBookService extends java.rmi.Remote {
public void addEntry(String name, Address address) throws java.rmi.RemoteException;
public Address[] getAddressFromNames(String[] names) throws java.rmi.RemoteException;
public Address getAddressFromName(String name) throws java.rmi.RemoteException;
public Address[] echoAddresses(Address[] addrs) throws java.rmi.RemoteException;
}
1.1 ws-axis/java/test/wsdl/arrays3/AddrBookServiceImplServiceTestCase.java
Index: AddrBookServiceImplServiceTestCase.java
===================================================================
/**
* AddrBookServiceImplServiceTestCase.java
*
* This file was auto-generated from WSDL
* by the Apache Axis #axisVersion# #today# WSDL2Java emitter.
*/
package test.wsdl.arrays3;
import junit.framework.AssertionFailedError;
public class AddrBookServiceImplServiceTestCase extends junit.framework.TestCase {
public AddrBookServiceImplServiceTestCase(java.lang.String name) {
super(name);
}
public void testAddressBookWSDL() throws Exception {
javax.xml.rpc.ServiceFactory serviceFactory = javax.xml.rpc.ServiceFactory.newInstance();
java.net.URL url = new java.net.URL(new test.wsdl.arrays3.testclient.AddrBookServiceImplServiceLocator().getarrays3Address() + "?WSDL");
javax.xml.rpc.Service service = serviceFactory.createService(url, new test.wsdl.arrays3.testclient.AddrBookServiceImplServiceLocator().getServiceName());
assertTrue(service != null);
}
public void testFunctional() throws Exception {
test.wsdl.arrays3.testclient.Arrays3SoapBindingStub binding;
try {
binding = (test.wsdl.arrays3.testclient.Arrays3SoapBindingStub)
new test.wsdl.arrays3.testclient.AddrBookServiceImplServiceLocator().getarrays3();
}
catch (javax.xml.rpc.ServiceException jre) {
if(jre.getLinkedCause()!=null)
jre.getLinkedCause().printStackTrace();
throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre);
}
assertNotNull("binding is null", binding);
test.wsdl.arrays3.testclient.Phone ph1 = new test.wsdl.arrays3.testclient.Phone();
ph1.setAreaCode(765);
ph1.setExchange("494");
ph1.setNumber("4900");
test.wsdl.arrays3.testclient.Phone ph2 = new test.wsdl.arrays3.testclient.Phone();
ph2.setAreaCode(765);
ph2.setExchange("494");
ph2.setNumber("4901");
test.wsdl.arrays3.testclient.Phone ph3 = new test.wsdl.arrays3.testclient.Phone();
ph3.setAreaCode(765);
ph3.setExchange("494");
ph3.setNumber("4902");
test.wsdl.arrays3.testclient.StateType state = new test.wsdl.arrays3.testclient.StateType();
state.setState("IN");
test.wsdl.arrays3.testclient.Address addr = new test.wsdl.arrays3.testclient.Address();
addr.setCity("West Lafayette");
addr.setState(state);
addr.setStreetName("University Drive");
addr.setStreetNum(1);
addr.setZip(47907);
addr.setPhoneNumber(ph1);
test.wsdl.arrays3.testclient.ArrayOfPhone arrph = new test.wsdl.arrays3.testclient.ArrayOfPhone();
arrph.setItem(new test.wsdl.arrays3.testclient.Phone[] { ph2, ph3});
addr.setOtherPhones(arrph);
test.wsdl.arrays3.testclient.Address[] addrs = null;
addrs = binding.getAddressFromNames(null);
assertNull("addrs is not null", addrs);
// if (addrs != null) System.out.println("addrs.length = " + addrs.length);
addrs = binding.getAddressFromNames(new String[] { });
assertNull("addrs is not null", addrs);
// if (addrs != null) System.out.println("addrs.length = " + addrs.length);
addrs = binding.getAddressFromNames(new String[] { "unknown", "unregistered" });
assertEquals("addrs.length should be 2", addrs.length, 2);
System.out.println("addrs.length = " + addrs.length);
binding.addEntry("Purdue Boilermaker", addr);
test.wsdl.arrays3.testclient.Address retAddr1 =
binding.getAddressFromName("Purdue Boilermaker");
binding.addEntry("Boilermaker Purdue", addr);
test.wsdl.arrays3.testclient.Address retAddrs[] =
binding.getAddressFromNames(new String[] { "Purdue Boilermaker", "Boilermaker Purdue" });
retAddrs = binding.echoAddresses(null);
assertNull("retAddrs is not null", retAddrs);
retAddrs = binding.echoAddresses(new test.wsdl.arrays3.testclient.Address[] { });
assertNull("retAddrs is not null", retAddrs);
retAddrs = binding.echoAddresses(new test.wsdl.arrays3.testclient.Address[] { addr });
assertEquals("retAddrs.length should be 1", 1, retAddrs.length);
assertTrue("addr does not match", compareAddress(addr, retAddrs[0]));
addr.setOtherPhones(null);
retAddrs = binding.echoAddresses(new test.wsdl.arrays3.testclient.Address[] { addr });
assertEquals("retAddrs.length should be 1", 1, retAddrs.length);
assertTrue("addr does not match", compareAddress(addr, retAddrs[0]));
assertNull("retAddrs[0].getOtherPhones() should be null", retAddrs[0].getOtherPhones());
test.wsdl.arrays3.testclient.ArrayOfPhone arrph1 = new test.wsdl.arrays3.testclient.ArrayOfPhone();
arrph1.setItem(new test.wsdl.arrays3.testclient.Phone[] { });
addr.setOtherPhones(arrph1);
retAddrs = binding.echoAddresses(new test.wsdl.arrays3.testclient.Address[] { addr });
assertEquals("retAddrs.length should be 1", 1, retAddrs.length);
// length-0 array echoes as null now.
// So don't check object equality but check that value is null.
// assertTrue("addr does not match", compareAddress(addr, retAddrs[0]));
assertNull("retAddrs[0].getOtherPhones() should be null", retAddrs[0].getOtherPhones());
addr.setOtherPhones(arrph);
retAddrs = binding.echoAddresses(new test.wsdl.arrays3.testclient.Address[] { addr });
assertEquals("addrs.length should be 1", 1, retAddrs.length);
assertTrue("addr does not match", compareAddress(addr, retAddrs[0]));
retAddrs = binding.echoAddresses(new test.wsdl.arrays3.testclient.Address[] { addr, addr });
assertEquals("addrs.length should be 2", 2, retAddrs.length);
assertTrue("addr does not match", compareAddress(addr, retAddrs[0]));
assertTrue("addr does not match", compareAddress(addr, retAddrs[1]));
test.wsdl.arrays3.testclient.Address[] retAddrs2 = binding.echoAddresses(retAddrs);
assertEquals("addrs.length should be 2", 2, retAddrs2.length);
assertTrue("addr does not match", compareAddress(retAddrs[0], retAddrs2[0]));
assertTrue("addr does not match", compareAddress(retAddrs[1], retAddrs2[1]));
}
public boolean compareAddress(test.wsdl.arrays3.testclient.Address addr1, test.wsdl.arrays3.testclient.Address addr2) {
if (addr1 == null && addr2 != null) {
throw new AssertionFailedError("");
}
if (addr1 != null && addr2 == null) {
throw new AssertionFailedError("");
}
if (addr1 == null && addr2 == null) {
return true;
}
if (!addr1.getCity().equals(addr2.getCity())) {
throw new AssertionFailedError("");
}
if (!addr1.getStreetName().equals(addr2.getStreetName())) {
throw new AssertionFailedError("");
}
if (addr1.getStreetNum() != addr2.getStreetNum()) {
throw new AssertionFailedError("");
}
if (addr1.getZip() != addr2.getZip()) {
throw new AssertionFailedError("");
}
if (!comparePhone(addr1.getPhoneNumber(), addr2.getPhoneNumber())) {
throw new AssertionFailedError("");
}
if (!compareStateType(addr1.getState(), addr2.getState())) {
throw new AssertionFailedError("");
}
if (!compareArrayOfPhone(addr1.getOtherPhones(), addr2.getOtherPhones())) {
throw new AssertionFailedError("");
}
return true;
}
public boolean compareArrayOfPhone(test.wsdl.arrays3.testclient.ArrayOfPhone aop1,
test.wsdl.arrays3.testclient.ArrayOfPhone aop2) {
if (aop1 == null && aop2 != null) {
throw new AssertionFailedError("");
}
if (aop1 != null && aop2 == null) {
throw new AssertionFailedError("");
}
if (aop1 == null && aop2 == null) {
return true;
}
return comparePhoneArray(aop1.getItem(), aop2.getItem());
}
public boolean comparePhoneArray(test.wsdl.arrays3.testclient.Phone[] arr1,
test.wsdl.arrays3.testclient.Phone[] arr2) {
if (arr1 == null && arr2 != null) {
throw new AssertionFailedError("");
}
if (arr1 != null && arr2 == null) {
throw new AssertionFailedError("");
}
if (arr1 == null && arr2 == null) {
return true;
}
if (arr1.length != arr2.length) {
throw new AssertionFailedError("");
}
for (int i = 0; i < arr1.length; i++) {
if (comparePhone(arr1[i], arr2[i]) == false) {
throw new AssertionFailedError("");
}
}
return true;
}
public boolean comparePhone(test.wsdl.arrays3.testclient.Phone phone1, test.wsdl.arrays3.testclient.Phone phone2) {
if (phone1 == null && phone2 != null) {
throw new AssertionFailedError("");
}
if (phone1 != null && phone2 == null) {
throw new AssertionFailedError("");
}
if (phone1 == null && phone2 == null) {
return true;
}
if (phone1.getAreaCode() != phone2.getAreaCode()) {
throw new AssertionFailedError("");
}
if (!phone1.getExchange().equals(phone2.getExchange())) {
throw new AssertionFailedError("");
}
if (!phone1.getNumber().equals(phone2.getNumber())) {
throw new AssertionFailedError("");
}
return true;
}
public boolean compareStateType(test.wsdl.arrays3.testclient.StateType st1, test.wsdl.arrays3.testclient.StateType st2) {
if (st1 == null && st2 != null) {
throw new AssertionFailedError("");
}
if (st1 != null && st2 == null) {
throw new AssertionFailedError("");
}
if (st1 == null && st2 == null) {
return true;
}
if (!st1.getState().equals(st2.getState())) {
throw new AssertionFailedError("");
}
return true;
}
}
1.1 ws-axis/java/test/wsdl/arrays3/Address.java
Index: Address.java
===================================================================
package test.wsdl.arrays3;
public class Address implements java.io.Serializable {
private String city;
private Phone phoneNumber;
private StateType state;
private String streetName;
private int streetNum;
private int zip;
private Phone[] otherPhones;
public Address() {
}
/**
* Gets the city value for this Address.
*
* @return city
*/
public java.lang.String getCity() {
return city;
}
/**
* Sets the city value for this Address.
*
* @param city
*/
public void setCity(java.lang.String city) {
this.city = city;
}
/**
* Gets the phoneNumber value for this Address.
*
* @return phoneNumber
*/
public Phone getPhoneNumber() {
return phoneNumber;
}
/**
* Sets the phoneNumber value for this Address.
*
* @param phoneNumber
*/
public void setPhoneNumber(Phone phoneNumber) {
this.phoneNumber = phoneNumber;
}
/**
* Gets the state value for this Address.
*
* @return state
*/
public StateType getState() {
return state;
}
/**
* Sets the state value for this Address.
*
* @param state
*/
public void setState(StateType state) {
this.state = state;
}
/**
* Gets the streetName value for this Address.
*
* @return streetName
*/
public java.lang.String getStreetName() {
return streetName;
}
/**
* Sets the streetName value for this Address.
*
* @param streetName
*/
public void setStreetName(java.lang.String streetName) {
this.streetName = streetName;
}
/**
* Gets the streetNum value for this Address.
*
* @return streetNum
*/
public int getStreetNum() {
return streetNum;
}
/**
* Sets the streetNum value for this Address.
*
* @param streetNum
*/
public void setStreetNum(int streetNum) {
this.streetNum = streetNum;
}
/**
* Gets the zip value for this Address.
*
* @return zip
*/
public int getZip() {
return zip;
}
/**
* Sets the zip value for this Address.
*
* @param zip
*/
public void setZip(int zip) {
this.zip = zip;
}
public void setOtherPhones(Phone[] phones) {
otherPhones = phones;
}
public Phone[] getOtherPhones() {
return otherPhones;
}
}
1.1 ws-axis/java/test/wsdl/arrays3/StateType.java
Index: StateType.java
===================================================================
package test.wsdl.arrays3;
public class StateType implements java.io.Serializable {
private java.lang.String state;
public StateType() {
}
public StateType(
java.lang.String state) {
this.state = state;
}
/**
* Gets the state value for this StateType.
*
* @return state
*/
public java.lang.String getState() {
return state;
}
/**
* Sets the state value for this StateType.
*
* @param state
*/
public void setState(java.lang.String state) {
this.state = state;
}
}