/*********************************************************************************************************************** | |
* Copyright (c) 2010 Attensity Europe GmbH. | |
* All rights reserved. | |
* This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 | |
* which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html | |
**********************************************************************************************************************/ | |
package org.eclipse.smila.processing.designer.model.processor.test; | |
import javax.xml.namespace.QName; | |
import javax.xml.parsers.*; | |
import junit.framework.TestCase; | |
import org.eclipse.smila.processing.designer.model.processor.InvokeService; | |
import org.eclipse.smila.processing.designer.model.processor.impl.ProcessorFactoryImpl; | |
import org.eclipse.smila.processing.designer.model.processor.util.InvokeServiceDeserializer; | |
import org.eclipse.smila.processing.designer.model.processor.util.InvokeServiceSerializer; | |
import org.eclipse.smila.processing.designer.model.record.*; | |
import org.w3c.dom.Document; | |
import org.w3c.dom.Node; | |
/** | |
* Tests the serialization/deserialization of {@link InvokeService}. | |
* | |
* Copyright (c) 2010 Attensity Europe GmbH | |
* | |
* @author Lars Kunze | |
*/ | |
public class TestInvokeServiceSerializeAndDeserialize extends TestCase | |
{ | |
private static DocumentBuilder documentBuilder; | |
private static Document document; | |
static | |
{ | |
try | |
{ | |
documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); | |
document = documentBuilder.newDocument(); | |
} | |
catch (Exception e) | |
{ | |
e.printStackTrace(); | |
} | |
} | |
public void testSerialization() throws ParserConfigurationException | |
{ | |
// (1) Prepare InvokeService object to serialize | |
InvokeService invokeService1 = ProcessorFactoryImpl.eINSTANCE.createInvokeService(); | |
invokeService1.getService().setName("service.name"); | |
invokeService1.getVariables().setInput("var.input"); | |
invokeService1.getVariables().setOutput("var.output"); | |
Annotation annotation = RecordFactory.eINSTANCE.createAnnotation(); | |
annotation.setName("annotation.name"); | |
AnnotationValue annotationValue = RecordFactory.eINSTANCE.createAnnotationValue(); | |
annotationValue.setName("name.value.1"); | |
annotationValue.setValue("value.value.1"); | |
annotation.getAnnotationValues().add(annotationValue); | |
invokeService1.getSetAnnotations().getAnnotations().add(annotation); | |
// (2) SERIALIZE | |
Node parentNode = document.createElement("extensionActivity"); | |
QName elementType = new QName("http://eclipse.org/smila/processor", "invokeService", "proc"); | |
InvokeServiceSerializer invokeServiceSerializer = new InvokeServiceSerializer(); | |
invokeServiceSerializer.marshall(elementType, invokeService1, parentNode, null, null); | |
// (3) DESERIALIZE | |
InvokeServiceDeserializer invokeServiceDeserializer = new InvokeServiceDeserializer(); | |
InvokeService invokeService2 = | |
(InvokeService) invokeServiceDeserializer.unmarshall(elementType, parentNode.getFirstChild(), null, null, null, | |
null, null, null); | |
// (4) Compare | |
assertEquals(invokeService1, invokeService2); | |
} | |
} |