blob: bb379c89cd12c9fb1610abad5d6f95ef651a543d [file] [log] [blame]
/*
* 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.tuscany.test.interop.client;
import java.rmi.RemoteException;
import java.util.Arrays;
import java.util.List;
import org.apache.tuscany.test.SCATestCase;
import org.osoa.sca.CompositeContext;
import org.osoa.sca.CurrentCompositeContext;
import org.soapinterop.wsdl.interop.test.doc.lit.WSDLInteropTestDocLitPortType;
import org.soapinterop.xsd.ArrayOfstring_literal;
import org.soapinterop.xsd.SOAPStruct;
import org.soapinterop.xsd.XsdPackage;
import commonj.sdo.helper.DataFactory;
/**
* This test case is part of the tuscany interop tests. This is a reduced version of the SOAPBuilders InteropTest test, document/literal mode. This
* version has operations such as echoString, echoArrayOfString and echoStruct.
*
* <p>
* The WSDL for the external service used in this test case can be downloaded from http://www.mssoapinterop.org/stkV3/wsdl/InteropTestDocLit.wsdl.
* This is part of the WSDL interop test from Microsoft and more details aobout this test case are found at
* http://www.mssoapinterop.org/stkV3/wsdl/WSDLInterop-0118.htm
*/
public class InteropTestDocLitTestCase extends TestCase {
private WSDLInteropTestDocLitPortType doc = null;
private DataFactory dataFactory;
protected void setUp() throws Exception {
setApplicationSCDL(InteropTestDocLit.class, "META-INF/sca/default.scdl");
addExtension("test.extensions", InteropTestDocLit.class.getClassLoader().getResource("META-INF/tuscany/extensions/test-extensions.scdl"));
super.setUp();
// Get the SDO DataFactory
dataFactory = DataFactory.INSTANCE;
// Locate the service to test
doc = locateInteropDocService();
}
/**
* Locate the interop service to test
*
* @return
*/
protected WSDLInteropTestDocLitPortType locateInteropDocService() {
CompositeContext compositeContext = CurrentCompositeContext.getContext();
return compositeContext.locateService(WSDLInteropTestDocLitPortType.class, "RemoteInteropDocService");
}
/**
* test echo void
*
* @throws RemoteException
*/
public void testEchoVoid() throws RemoteException {
doc.echoVoid();
assertTrue(true);
}
/**
* test echo string
*
* @throws RemoteException
*/
public void testEchoString() throws RemoteException {
String input = "a test string";
String output = doc.echoString(input);
assertEquals(input, output);
}
/**
* test echo string
*
* @throws RemoteException
*/
public void testEchoStringArray() throws RemoteException {
ArrayOfstring_literal input = (ArrayOfstring_literal) dataFactory.create(ArrayOfstring_literal.class);
List inStrings = Arrays.asList(new String[] { "petra", "sue" });
input.set(XsdPackage.ARRAY_OFSTRING_LITERAL__STRING, inStrings);
ArrayOfstring_literal output = doc.echoStringArray(input);
List outStrings = output.getString();
assertNotNull(outStrings);
assertEquals(2, outStrings.size());
assertEquals("petra", outStrings.get(0));
assertEquals("sue", outStrings.get(1));
}
/**
* test echo struct
*
* @throws RemoteException
*/
public void testEchoStruct() throws RemoteException {
SOAPStruct input = (SOAPStruct) dataFactory.create(SOAPStruct.class);
input.setVarInt(200);
input.setVarFloat(.002f);
input.setVarString("Hello");
SOAPStruct output = doc.echoStruct(input);
assertEquals(input.getVarInt(), output.getVarInt());
assertEquals(input.getVarFloat(), output.getVarFloat());
assertEquals(input.getVarString(), output.getVarString());
}
}