/*
* 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);
//
// }
//
}