/* * 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 junit.framework.TestCase; import org.apache.tuscany.sca.host.embedded.SCADomain; import org.soapinterop.ArrayOfSimpleDocument; import org.soapinterop.ChildDocument; import org.soapinterop.ComplexDocument; import org.soapinterop.DocTestPortType; import org.soapinterop.SimpleDocument; import org.soapinterop.SimpleDocument1; import org.soapinterop.SingleTag; import commonj.sdo.helper.DataFactory; public class InteropDocClientTestCase extends TestCase { private SCADomain scaDomain; private DataFactory dataFactory; private DocTestPortType interopDoc; public InteropDocClientTestCase(){}; @Override protected void setUp() throws Exception { scaDomain = SCADomain.newInstance("default.composite"); interopDoc = locateInteropDocService(); //Get the SDO DataFactory dataFactory = DataFactory.INSTANCE; } public void testSingleTag() throws RemoteException { assertNotNull(interopDoc); // Create the input SingleTag input = (SingleTag) dataFactory.create(SingleTag.class); // Invoke the service SingleTag output = interopDoc.SingleTag(input); // Test the results assertNotNull(output); } public void testSimpleDocument() throws RemoteException { assertNotNull(interopDoc); // Create the input SimpleDocument1 input = (SimpleDocument1) dataFactory.create(SimpleDocument1.class); input.setValue("123"); // Invoke the service SimpleDocument1 output = interopDoc.SimpleDocument(input); // Test the results assertNotNull(output); assertEquals("123", output.getValue()); } public void testComplexDocument() throws RemoteException { assertNotNull(interopDoc); // Create the input ComplexDocument input = (ComplexDocument) dataFactory.create(ComplexDocument.class); input.setAnAttribute("789"); ChildDocument childDocument = (ChildDocument) dataFactory.create(ChildDocument.class); SimpleDocument simpleDocument = (SimpleDocument) dataFactory.create(SimpleDocument.class); SimpleDocument1 simpleDocument1 = (SimpleDocument1) dataFactory.create(SimpleDocument1.class); simpleDocument.setSimpleDocument(simpleDocument1); simpleDocument1.setValue("456"); ArrayOfSimpleDocument arrayOfSimpleDocument = (ArrayOfSimpleDocument) dataFactory.create(ArrayOfSimpleDocument.class); arrayOfSimpleDocument.getSimpleDocument().add(simpleDocument1); childDocument.setChildSimpleDoc(arrayOfSimpleDocument); input.setChild(childDocument); // Invoke the service ComplexDocument output = interopDoc.ComplexDocument(input); // Test the results assertNotNull(output); assertEquals("789", output.getAnAttribute()); assertNotNull(output.getChild()); assertNotNull(output.getChild().getChildSimpleDoc()); // FIXME Add more tests of the output document } /** * Locate the interop service to test * * @return */ protected DocTestPortType locateInteropDocService() { String interopLocation = System.getProperty("interopLocation"); // Valid service names are: // RemoteInteropDocService: the live interop Web Service // LocalHostInteropDocService: the interop Web Service hosted by Tuscany on localhost // LoopbackInteropDocServiceComponent: a dummy loopback service component // To specify the service name run mvn -interopLocation="Remote" if (interopLocation == null) interopLocation = "Remote"; return scaDomain.getService(DocTestPortType.class, interopLocation + "InteropDocService"); } }