/******************************************************************************* * Copyright (c) 2011 itemis AG (http://www.itemis.eu) and others. * 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.emf.mwe2.language.tests.serializer; import org.eclipse.emf.mwe2.language.Mwe2StandaloneSetup; import org.eclipse.emf.mwe2.language.mwe2.Component; import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.junit4.AbstractXtextTests; import org.eclipse.xtext.junit4.serializer.SerializerTester; import org.junit.Test; /** * @author Moritz Eysholdt - Initial contribution and API */ public class Mwe2SerializerTest extends AbstractXtextTests { private SerializerTester tester; @Override public void setUp() throws Exception { super.setUp(); with(new Mwe2StandaloneSetup()); tester = get(SerializerTester.class); } @Test public void testSimple() throws Exception { StringBuilder module = new StringBuilder(); module.append("module foo\n"); module.append("org.eclipse.emf.mwe2.runtime.workflow.Workflow {}"); tester.assertSerializeWithNodeModel(module.toString()); tester.assertSerializeWithoutNodeModel(module.toString()); } @Test public void testIntegration() throws Exception { StringBuilder module = new StringBuilder(); module.append("module foo\n"); module.append("var bool1 = true\n"); module.append("var bool2 = false\n"); module.append("var str1 = 'xxx${bool1}xx'\n"); module.append("var str2 = \"xxx${bool2}xx\"\n"); module.append("var comp1 = org.eclipse.emf.mwe2.runtime.workflow.Workflow {} \n"); module.append("var ref1 = bool1 \n"); module.append("org.eclipse.emf.mwe2.runtime.workflow.Workflow {\n"); module.append(" bean = java.lang.String {}"); module.append(" component = @foo {}"); module.append(" component = @foo : bar.baz auto-inject {}"); module.append("}"); tester.assertSerializeWithNodeModel(module.toString()); tester.assertSerializeWithoutNodeModel(module.toString()); } @Test public void testStrings() throws Exception { StringBuilder module = new StringBuilder(); module.append("module foo\n"); module.append("var bool1 = true\n"); module.append("var bool2 = false\n"); module.append("var str1 = 'xxx${bool1}xx'\n"); module.append("var str2 = \"xxx${bool2}xx\"\n"); module.append("var str3 = \" xxx ${ bool2 } xx \"\n"); module.append("var str4 = \"xxx${bool1}${bool2}xx\"\n"); module.append("var str5 = \"${bool1}\"\n"); module.append("var str6 = '${bool1}'\n"); module.append("org.eclipse.emf.mwe2.runtime.workflow.Workflow {}"); tester.assertSerializeWithNodeModel(module.toString()); tester.assertSerializeWithoutNodeModel(module.toString()); } @Test public void testComponents() throws Exception { StringBuilder module = new StringBuilder(); module.append("module foo\n"); module.append("org.eclipse.emf.mwe2.runtime.workflow.Workflow {\n"); module.append(" bean = java.lang.String {}"); module.append(" component = @foo {}"); module.append(" component = @foo : bar.baz auto-inject {}"); module.append(" component = :other {}"); module.append(" bean = {}"); module.append("}"); for (Component comp : EcoreUtil2.getAllContentsOfType(getModel(module.toString()), Component.class)) { tester.assertSerializeWithNodeModel(comp); tester.assertSerializeWithoutNodeModel(comp); } } }