diff options
Diffstat (limited to 'extraplugins/layers/org.eclipse.papyrus.layers.runtime/tests/org/eclipse/papyrus/layers/runtime/utils/ECoreUtilsTest.java')
-rw-r--r-- | extraplugins/layers/org.eclipse.papyrus.layers.runtime/tests/org/eclipse/papyrus/layers/runtime/utils/ECoreUtilsTest.java | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.runtime/tests/org/eclipse/papyrus/layers/runtime/utils/ECoreUtilsTest.java b/extraplugins/layers/org.eclipse.papyrus.layers.runtime/tests/org/eclipse/papyrus/layers/runtime/utils/ECoreUtilsTest.java new file mode 100644 index 00000000000..a3014cad9e5 --- /dev/null +++ b/extraplugins/layers/org.eclipse.papyrus.layers.runtime/tests/org/eclipse/papyrus/layers/runtime/utils/ECoreUtilsTest.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * Copyright (c) 2013 CEA LIST. + * 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 + * + * Contributors: + * Cedric Dumoulin - cedric.dumoulin@lifl.fr + ******************************************************************************/ +package org.eclipse.papyrus.layers.runtime.utils; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.eclipse.papyrus.layers.stackmodel.LayersException; +import org.eclipse.papyrus.layers.stackmodel.layers.Layer; +import org.eclipse.papyrus.layers.stackmodel.layers.LayersFactory; +import org.eclipse.papyrus.layers.stackmodel.layers.LayersPackage; +import org.eclipse.papyrus.layers.stackmodel.layers.TopLayerOperator; +import org.eclipse.papyrus.layers.stackmodel.layers.TypeInstance; +import org.eclipse.papyrus.layers.stackmodel.layers.util.ECoreUtils; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + + +/** + * @author dumoulin + * + */ +public class ECoreUtilsTest { + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + } + + /** + * @throws java.lang.Exception + */ + @After + public void tearDown() throws Exception { + } + + /** + * Test method for {@link org.eclipse.papyrus.layers.stackmodel.layers.util.ECoreUtils#isAncestorInstanceOf(org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EClass)}. + */ + @Test + public void testIsAncestorInstanceOf() { + // Create a tree of EObject + TopLayerOperator layerOperator = LayersFactory.eINSTANCE.createTopLayerOperator(); + Layer layer = LayersFactory.eINSTANCE.createLayer(); + layerOperator.getLayers().add(layer); + + TypeInstance instance2 = LayersFactory.eINSTANCE.createBooleanInstance(); + layer.getPropertyValueMap().put("prop1", instance2); + + // Check ancestor + assertTrue("ancestor found", ECoreUtils.isAncestorInstanceOf(instance2, LayersPackage.eINSTANCE.getTypeInstance())); + assertTrue("ancestor found", ECoreUtils.isAncestorInstanceOf(instance2, LayersPackage.eINSTANCE.getLayer())); + assertTrue("ancestor found", ECoreUtils.isAncestorInstanceOf(instance2, LayersPackage.eINSTANCE.getTopLayerOperator())); + assertTrue("ancestor found", ECoreUtils.isAncestorInstanceOf(instance2, LayersPackage.eINSTANCE.getLayerOperator())); + + assertFalse("no ancestor found", ECoreUtils.isAncestorInstanceOf(instance2, LayersPackage.eINSTANCE.getLayersStack())); + } + + /** + * Test method for {@link org.eclipse.papyrus.layers.stackmodel.layers.util.ECoreUtils#lookupAncestorOfType(org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EClass)}. + * @throws LayersException + */ + @Test + public void testLookupAncestorOfType() throws LayersException { + // Create a tree of EObject + TopLayerOperator layerOperator = LayersFactory.eINSTANCE.createTopLayerOperator(); + Layer layer = LayersFactory.eINSTANCE.createLayer(); + layerOperator.getLayers().add(layer); + + TypeInstance instance2 = LayersFactory.eINSTANCE.createBooleanInstance(); + layer.getPropertyValueMap().put("prop1", instance2); + + // Check ancestor + assertEquals("ancestor found", instance2, ECoreUtils.lookupAncestorOfType(instance2, LayersPackage.eINSTANCE.getTypeInstance())); + assertEquals("ancestor found", layer, ECoreUtils.lookupAncestorOfType(instance2, LayersPackage.eINSTANCE.getLayer())); + assertEquals("ancestor found", layerOperator, ECoreUtils.lookupAncestorOfType(instance2, LayersPackage.eINSTANCE.getTopLayerOperator())); + assertEquals("ancestor found", layerOperator, ECoreUtils.lookupAncestorOfType(instance2, LayersPackage.eINSTANCE.getLayerOperator())); + + try { + ECoreUtils.lookupAncestorOfType(instance2, LayersPackage.eINSTANCE.getLayersStack()); + fail("Exception is thrown"); + } catch (LayersException e) { + // Ok, we expect an exception + } + } + +} |