/* * 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.sca.core.databinding.transformers; //import static org.apache.tuscany.spi.databinding.DataBinding.IDL_INPUT; //import static org.apache.tuscany.spi.databinding.DataBinding.IDL_OUTPUT; // //import java.util.ArrayList; //import java.util.List; // //import javax.xml.namespace.QName; import junit.framework.TestCase; //import org.apache.tuscany.databinding.impl.DataBindingRegistryImpl; //import org.apache.tuscany.databinding.impl.MediatorImpl; //import org.apache.tuscany.databinding.impl.TransformationContextImpl; //import org.apache.tuscany.databinding.impl.TransformerRegistryImpl; //import org.apache.tuscany.databinding.javabeans.DOMNode2JavaBeanTransformer; //import org.apache.tuscany.databinding.javabeans.JavaBean2DOMNodeTransformer; //import org.apache.tuscany.databinding.xml.DOMDataBinding; //import org.apache.tuscany.databinding.xml.Node2String; //import org.apache.tuscany.databinding.xml.String2Node; //import org.apache.tuscany.interfacedef.DataType; //import org.apache.tuscany.interfacedef.Operation; //import org.apache.tuscany.interfacedef.impl.DataTypeImpl; //import org.apache.tuscany.interfacedef.impl.OperationImpl; //import org.apache.tuscany.interfacedef.util.ElementInfo; //import org.apache.tuscany.interfacedef.util.TypeInfo; //import org.apache.tuscany.interfacedef.util.WrapperInfo; //import org.apache.tuscany.interfacedef.util.XMLType; //import org.apache.tuscany.spi.databinding.DataBindingRegistry; //import org.apache.tuscany.spi.databinding.TransformationContext; //import org.apache.tuscany.spi.databinding.extension.DOMHelper; //import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension; //import org.w3c.dom.Document; //import org.w3c.dom.Element; public class IDLTransformerTestCaseFIXME extends TestCase { // private static final String IPO_XML = "" + "" // + " " // + " Helen Zoe" // + " 47 Eden Street" // + " Cambridge" // + " CB1 1JR" // + " " // + " " // + " Robert Smith" // + " 8 Oak Avenue" // + " Old Town" // + " PA" // + " 95819" // + " " // + " " // + " " // + " Lapis necklace" // + " 1" // + " 99.95" // + " Want this for the holidays" // + " 1999-12-05" // + " " // + " " // + ""; // // private static final String URI_ORDER_XSD = "http://example.com/order.xsd"; // // /** // * @see junit.framework.TestCase#setUp() // */ // protected void setUp() throws Exception { // super.setUp(); // } // // public void testTransform() throws Exception { // List types0 = new ArrayList(); // DataType wrapperType = new DataTypeImpl(null, Object.class, // new XMLType(new QName(URI_ORDER_XSD, // "checkOrderStatus"), null)); // types0.add(wrapperType); // DataType> inputType0 = new DataTypeImpl>(IDL_INPUT, // Object[].class, types0); // // List types1 = new ArrayList(); // DataType customerIdType = new DataTypeImpl( // null, // Object.class, // new XMLType( // new QName(URI_ORDER_XSD, "customerId"), // null)); // DataType orderType = new DataTypeImpl(null, Object.class, // new XMLType(new QName(URI_ORDER_XSD, "order"), null)); // DataType flagType = new DataTypeImpl(null, Object.class, new XMLType(new QName(URI_ORDER_XSD, // "flag"), null)); // types1.add(customerIdType); // types1.add(orderType); // types1.add(flagType); // // DataType statusType = new DataTypeImpl(null, Object.class, // new XMLType(new QName(URI_ORDER_XSD, "status"), null)); // DataType responseType = new DataTypeImpl(null, Object.class, // new XMLType(new QName(URI_ORDER_XSD, // "checkOrderStatusResponse"), // null)); // // Operation op = new OperationImpl("checkOrderStatus"); // op.setInputType(inputType0); // op.setOutputType(responseType); //// op.setDataBinding(DOMDataBinding.NAME); //// //// inputType0.setOperation(op); // op.setWrapperStyle(true); // ElementInfo inputElement = new ElementInfo(new QName(URI_ORDER_XSD, "checkOrderStatus"), new TypeInfo(null, // false, // null)); //// wrapperType.setMetadata(ElementInfo.class.getName(), inputElement); // // ElementInfo customerId = new ElementInfo(new QName("", "customerId"), // SimpleTypeMapperExtension.XSD_SIMPLE_TYPES.get("string")); // ElementInfo order = new ElementInfo(new QName("", "order"), new TypeInfo(new QName(URI_ORDER_XSD), false, null)); // ElementInfo flag = new ElementInfo(new QName("", "flag"), SimpleTypeMapperExtension.XSD_SIMPLE_TYPES.get("int")); // //// customerIdType.setMetadata(ElementInfo.class.getName(), customerId); //// orderType.setMetadata(ElementInfo.class.getName(), order); //// flagType.setMetadata(ElementInfo.class.getName(), flag); //// //// customerIdType.setOperation(op); //// orderType.setOperation(op); //// flagType.setOperation(op); // // List inputElements = new ArrayList(); // inputElements.add(customerId); // inputElements.add(order); // inputElements.add(flag); // // ElementInfo statusElement = new ElementInfo(new QName("", "status"), SimpleTypeMapperExtension.XSD_SIMPLE_TYPES // .get("string")); // //// statusType.setMetadata(ElementInfo.class.getName(), statusElement); //// statusType.setOperation(op); // // List outputElements = new ArrayList(); // outputElements.add(statusElement); // // ElementInfo outputElement = new ElementInfo(new QName(URI_ORDER_XSD, "checkOrderStatusResponse"), // new TypeInfo(null, false, null)); // //// responseType.setMetadata(ElementInfo.class.getName(), inputElement); //// responseType.setOperation(op); // // WrapperInfo wrapperInfo = new WrapperInfo(DOMDataBinding.NAME, inputElement, outputElement, inputElements, // outputElements); // op.setWrapper(wrapperInfo); //// op.setDataBinding(DOMDataBinding.NAME); // // MediatorImpl m = new MediatorImpl(); // TransformerRegistryImpl tr = new TransformerRegistryImpl(); // tr.registerTransformer(new String2Node()); // tr.registerTransformer(new Node2String()); // tr.registerTransformer(new DOMNode2JavaBeanTransformer()); // tr.registerTransformer(new JavaBean2DOMNodeTransformer()); // m.setTransformerRegistry(tr); // DataBindingRegistry dataBindingRegistry = new DataBindingRegistryImpl(); // dataBindingRegistry.register(new DOMDataBinding()); // m.setDataBindingRegistry(dataBindingRegistry); // // Object[] source = new Object[] {"cust001", IPO_XML, Integer.valueOf(1)}; // Input2InputTransformer t = new Input2InputTransformer(); // t.setMediator(m); // // TransformationContext context = new TransformationContextImpl(); // context.setSourceOperation(op); // List> types = new ArrayList>(); // types.add(new DataTypeImpl(Object.class.getName(), String.class, String.class)); // types.add(new DataTypeImpl("java.lang.String", String.class, String.class)); // types.add(new DataTypeImpl(Object.class.getName(), int.class, int.class)); // DataType>> inputType1 = new DataTypeImpl>>(IDL_INPUT, Object[].class, // types); // context.setSourceDataType(inputType1); // context.setTargetDataType(op.getInputType()); // Object[] results = t.transform(source, context); // assertEquals(1, results.length); // assertTrue(results[0] instanceof Element); // Element element = (Element)results[0]; // assertEquals("http://example.com/order.xsd", element.getNamespaceURI()); // assertEquals("checkOrderStatus", element.getLocalName()); // // TransformationContext context1 = new TransformationContextImpl(); // DataType sourceType = new DataTypeImpl(IDL_OUTPUT, Object.class, op.getOutputType()); // // context1.setSourceDataType(sourceType); // DataType targetType = new DataTypeImpl(IDL_OUTPUT, Object.class, // new DataTypeImpl("java.lang.Object", // String.class, String.class)); // context1.setTargetDataType(targetType); // // Document factory = DOMHelper.newDocument(); // Element responseElement = factory // .createElementNS("http://example.com/order.wsdl", "p:checkOrderStatusResponse"); // Element status = factory.createElement("status"); // responseElement.appendChild(status); // status.appendChild(factory.createTextNode("shipped")); // Output2OutputTransformer t2 = new Output2OutputTransformer(); // t2.setMediator(m); // Object st = t2.transform(responseElement, context1); // assertEquals("shipped", st); // // } // }