From 2507d053f1925c64f3b5ddf85b24b0d9f27c9c98 Mon Sep 17 00:00:00 2001 From: jkohnlein Date: Thu, 18 Sep 2008 15:09:56 +0000 Subject: [PATCH] First shot at xtext to ecore in Java --- .../Xtext2EcoreTransformerTests.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTests.java diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTests.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTests.java new file mode 100644 index 000000000..c42b1f9cc --- /dev/null +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTests.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * Copyright (c) 2008 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.xtext.resource.metamodel; + +import java.util.List; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.AbstractRule; +import org.eclipse.xtext.Grammar; +import org.eclipse.xtext.XtextStandaloneSetup; +import org.eclipse.xtext.tests.AbstractGeneratorTest; + +/** + * @author Jan Köhnlein - Initial contribution and API + */ +public class Xtext2EcoreTransformerTests extends AbstractGeneratorTest { + + @Override + protected void setUp() throws Exception { + super.setUp(); + with(XtextStandaloneSetup.class); + } + + public void testRuleWithoutExplicitReturnType() throws Exception { + Grammar grammar = (Grammar) getModel("language test generate test 'http://test' MyRule: myFeature=INT;"); + EList rules = grammar.getRules(); + AbstractRule firstRule = rules.get(0); + assertNull(firstRule.getType()); + Xtext2EcoreTransformer xtext2EcoreTransformer = new Xtext2EcoreTransformer(); + List metamodels = xtext2EcoreTransformer.transform(grammar); + assertTrue(metamodels != null && !metamodels.isEmpty()); + EPackage firstEPackage = metamodels.get(0); + EList classifiers = firstEPackage.getEClassifiers(); + assertEquals(1, classifiers.size()); + EClassifier implicitlyDefinedMetatype = classifiers.get(0); + assertEquals("MyRule", implicitlyDefinedMetatype.getName()); + } +}