001: /*
002: * The Apache Software License, Version 1.1
003: *
004: *
005: * Copyright (c) 2002 The Apache Software Foundation. All rights
006: * reserved.
007: *
008: * Redistribution and use in source and binary forms, with or without
009: * modification, are permitted provided that the following conditions
010: * are met:
011: *
012: * 1. Redistributions of source code must retain the above copyright
013: * notice, this list of conditions and the following disclaimer.
014: *
015: * 2. Redistributions in binary form must reproduce the above copyright
016: * notice, this list of conditions and the following disclaimer in
017: * the documentation and/or other materials provided with the
018: * distribution.
019: *
020: * 3. The end-user documentation included with the redistribution,
021: * if any, must include the following acknowledgment:
022: * "This product includes software developed by the
023: * Apache Software Foundation (http://www.apache.org/)."
024: * Alternately, this acknowledgment may appear in the software itself,
025: * if and wherever such third-party acknowledgments normally appear.
026: *
027: * 4. The names "WSIF" and "Apache Software Foundation" must
028: * not be used to endorse or promote products derived from this
029: * software without prior written permission. For written
030: * permission, please contact apache@apache.org.
031: *
032: * 5. Products derived from this software may not be called "Apache",
033: * nor may "Apache" appear in their name, without prior written
034: * permission of the Apache Software Foundation.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
040: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: * ====================================================================
049: *
050: * This software consists of voluntary contributions made by many
051: * individuals on behalf of the Apache Software Foundation and was
052: * originally based on software copyright (c) 2001, 2002, International
053: * Business Machines, Inc., http://www.apache.org. For more
054: * information on the Apache Software Foundation, please see
055: * <http://www.apache.org/>.
056: */
057:
058: package simpletypes;
059:
060: import java.math.BigDecimal;
061:
062: import junit.framework.Test;
063: import junit.framework.TestCase;
064: import junit.framework.TestSuite;
065:
066: import org.apache.wsif.WSIFMessage;
067: import org.apache.wsif.WSIFOperation;
068: import org.apache.wsif.WSIFPort;
069: import org.apache.wsif.WSIFService;
070: import org.apache.wsif.WSIFServiceFactory;
071: import org.apache.wsif.providers.soap.apacheaxis.WSIFDynamicProvider_ApacheAxis;
072: import org.apache.wsif.util.WSIFPluggableProviders;
073: import util.TestUtilities;
074:
075: /**
076: * Junit test to test out using SOAP-ENC simple types
077: * @author Owen Burroughs
078: */
079: public class SOAPENCTest extends TestCase {
080: String wsdlLocation = TestUtilities
081: .getWsdlPath("java\\test\\simpletypes")
082: + "SOAPENCTest.wsdl";
083: static String server = TestUtilities.getSoapServer().toUpperCase();
084:
085: public SOAPENCTest(String name) {
086: super (name);
087: }
088:
089: public static void main(String[] args) {
090: // TestUtilities.startListeners();
091: junit.textui.TestRunner.run(suite());
092: // TestUtilities.stopListeners();
093: }
094:
095: public static Test suite() {
096: return new TestSuite(SOAPENCTest.class);
097: }
098:
099: public void setUp() {
100: TestUtilities.setUpExtensionsAndProviders();
101: }
102:
103: public void testAxis() {
104: doit(server + "Port", "axis");
105: }
106:
107: public void testSoap() {
108: doit(server + "Port", "soap");
109: }
110:
111: private void doit(String portName, String protocol) {
112: TestUtilities.setProviderForProtocol(protocol);
113:
114: try {
115: WSIFServiceFactory factory = WSIFServiceFactory
116: .newInstance();
117: WSIFService service = factory.getService(wsdlLocation,
118: null, // serviceNS
119: null, // serviceName
120: "http://wsifservice.simpletypes/", // portTypeNS
121: "SimplePT"); // portTypeName
122:
123: WSIFPort port = service.getPort(portName);
124:
125: int i = 10;
126: byte b = (byte) i;
127:
128: invokeOperation(port, "getString", "abcd");
129: invokeOperation(port, "getBoolean", new Boolean(true));
130: invokeOperation(port, "getFloat", new Float(4321));
131: invokeOperation(port, "getDouble", new Double(4321));
132: invokeOperation(port, "getDecimal", new BigDecimal(4321));
133: invokeOperation(port, "getInteger", new Integer(4321));
134: invokeOperation(port, "getShort", new Short("4321"));
135: invokeOperation(port, "getByte", new Byte(b));
136: invokeOperation(port, "getBase64", new byte[] { b });
137: } catch (Exception e) {
138: System.err.println("SimpleTest(" + portName
139: + ") caught exception " + e);
140: e.printStackTrace();
141: assertTrue(false);
142: } finally {
143: TestUtilities.resetDefaultProviders();
144: }
145: }
146:
147: private void invokeOperation(WSIFPort port, String name,
148: Object partVal) throws Exception {
149: WSIFOperation operation = port.createOperation(name);
150:
151: WSIFMessage inputMessage = operation.createInputMessage();
152: WSIFMessage outputMessage = operation.createOutputMessage();
153: WSIFMessage faultMessage = operation.createFaultMessage();
154: inputMessage.setObjectPart("dummy", partVal);
155:
156: boolean b = operation.executeRequestResponseOperation(
157: inputMessage, outputMessage, faultMessage);
158:
159: if (b) {
160: System.out.println(name + " returned: "
161: + outputMessage.getObjectPart("return"));
162: } else {
163: System.out.println(name + " failed!");
164: }
165: }
166: }
|