| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 IBM Corporation 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 |
| // |
| // Contributors: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.library.tests.variability; |
| |
| import org.eclipse.emf.ecore.EStructuralFeature; |
| import org.eclipse.epf.library.configuration.ConfigurationHelper; |
| import org.eclipse.epf.library.configuration.DefaultElementRealizer; |
| import org.eclipse.epf.library.configuration.ElementRealizer; |
| import org.eclipse.epf.library.tests.LibraryTestHelper; |
| import org.eclipse.epf.library.util.LibraryUtil; |
| import org.eclipse.epf.uma.ContentPackage; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.epf.uma.MethodPlugin; |
| import org.eclipse.epf.uma.Task; |
| import org.eclipse.epf.uma.UmaPackage; |
| |
| /** |
| * Test case for attribute feature varaibility. |
| * |
| * @author Jinhua Xi |
| * @since 1.0 |
| */ |
| public class AttributeFeatureTest extends VariablityBaseTestCase { |
| |
| /** |
| * @param name |
| */ |
| public AttributeFeatureTest(String name) { |
| super(name); |
| } |
| |
| public void test_task_mainDescription_with_contributors() { |
| MethodPlugin plugin = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg = LibraryTestHelper.createContentPackage(plugin, "p1"); |
| Task t1 = LibraryTestHelper.createTask(pkg, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg, "t2"); |
| Task t3 = LibraryTestHelper.createTask(pkg, "t3"); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin); |
| config.getMethodPackageSelection().add(pkg); |
| LibraryUtil.validateMethodConfiguration(config); |
| |
| EStructuralFeature feature = UmaPackage.eINSTANCE.getContentDescription_MainDescription(); |
| String text; |
| |
| final String t1text = "--t1 text--"; |
| final String t2text = "--t2 text--"; |
| final String t3text = "--t3 text--"; |
| |
| t1.getPresentation().setMainDescription(t1text); |
| t2.getPresentation().setMainDescription(t2text); |
| t3.getPresentation().setMainDescription(t3text); |
| |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t1.getPresentation(), t1, feature, config); |
| assertEquals(t1text, text); |
| |
| LibraryTestHelper.setContributes(t2, t1); |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t1.getPresentation(), t1, feature, config); |
| assertTrue(text != null |
| && text.indexOf(t1text) >= 0 |
| && text.indexOf(t2text) >= 0 ); |
| |
| LibraryTestHelper.setContributes(t3, t1); |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t1.getPresentation(), t1, feature, config); |
| assertTrue(text != null |
| && text.indexOf(t1text) >= 0 |
| && text.indexOf(t2text) >= 0 |
| && text.indexOf(t3text) >= 0 ); |
| |
| } |
| |
| public void test_task_mainDescription_with_replacers() { |
| MethodPlugin plugin = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg = LibraryTestHelper.createContentPackage(plugin, "p1"); |
| Task t1 = LibraryTestHelper.createTask(pkg, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg, "t2"); |
| Task t3 = LibraryTestHelper.createTask(pkg, "t3"); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin); |
| config.getMethodPackageSelection().add(pkg); |
| LibraryUtil.validateMethodConfiguration(config); |
| ElementRealizer realizer = DefaultElementRealizer.newElementRealizer(config); |
| |
| EStructuralFeature feature = UmaPackage.eINSTANCE.getContentDescription_MainDescription(); |
| String text; |
| Task t; |
| |
| final String t1text = "--t1 text--"; |
| final String t2text = "--t2 text--"; |
| final String t3text = "--t3 text--"; |
| |
| t1.getPresentation().setMainDescription(t1text); |
| t2.getPresentation().setMainDescription(t2text); |
| t3.getPresentation().setMainDescription(t3text); |
| |
| // 1 |
| LibraryTestHelper.setReplaces(t2, t1); |
| t = (Task)ConfigurationHelper.getCalculatedElement(t1, realizer); |
| assertEquals(t2, t); // if this fail, the remaining code will not be executed |
| |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t.getPresentation(), t, feature, config); |
| assertEquals(t2text, text); |
| |
| // 2 |
| LibraryTestHelper.setReplaces(t3, t2); |
| t = (Task)ConfigurationHelper.getCalculatedElement(t1, realizer); |
| assertEquals(t3, t); // if this fail, the remaining code will not be executed |
| |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t.getPresentation(), t, feature, config); |
| assertEquals(t3text, text); |
| |
| // 3 |
| LibraryTestHelper.setReplaces(t3, t1); |
| t = (Task)ConfigurationHelper.getCalculatedElement(t1, realizer); |
| assertEquals(t1, t); // if this fail, the remaining code will not be executed |
| |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t.getPresentation(), t, feature, config); |
| assertEquals(t1text, text); |
| |
| } |
| |
| |
| public void test_task_mainDescription_with_extenders() { |
| MethodPlugin plugin = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg = LibraryTestHelper.createContentPackage(plugin, "p1"); |
| Task t1 = LibraryTestHelper.createTask(pkg, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg, "t2"); |
| Task t3 = LibraryTestHelper.createTask(pkg, "t3"); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin); |
| config.getMethodPackageSelection().add(pkg); |
| LibraryUtil.validateMethodConfiguration(config); |
| |
| EStructuralFeature feature = UmaPackage.eINSTANCE.getContentDescription_MainDescription(); |
| String text; |
| |
| final String t1text = "--t1 text--"; |
| final String t2text = "--t2 text--"; |
| final String t3text = "--t3 text--"; |
| |
| t1.getPresentation().setMainDescription(t1text); |
| t3.getPresentation().setMainDescription(t3text); |
| |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t2.getPresentation(), t2, feature, config); |
| assertTrue(text==null || text.equals("")); |
| |
| LibraryTestHelper.setExtends(t2, t1); |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t2.getPresentation(), t2, feature, config); |
| assertEquals(t1text, text); |
| |
| LibraryTestHelper.setExtends(t3, t1); |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t3.getPresentation(), t3, feature, config); |
| assertEquals(t3text, text); |
| |
| } |
| |
| public void test_task_mainDescription_with_replacer_contributor_extender() { |
| MethodPlugin plugin = LibraryTestHelper.createMethodPlugin("plugin 1"); |
| ContentPackage pkg = LibraryTestHelper.createContentPackage(plugin, "p1"); |
| Task t1 = LibraryTestHelper.createTask(pkg, "t1"); |
| Task t2 = LibraryTestHelper.createTask(pkg, "t2"); |
| Task t3 = LibraryTestHelper.createTask(pkg, "t3"); |
| Task t4 = LibraryTestHelper.createTask(pkg, "t4"); |
| |
| MethodConfiguration config = LibraryTestHelper.createConfiguration("config 1"); |
| config.getMethodPluginSelection().add(plugin); |
| config.getMethodPackageSelection().add(pkg); |
| LibraryUtil.validateMethodConfiguration(config); |
| ElementRealizer realizer = DefaultElementRealizer.newElementRealizer(config); |
| |
| EStructuralFeature feature = UmaPackage.eINSTANCE.getContentDescription_MainDescription(); |
| String text; |
| Task t; |
| |
| final String t1text = "--t1 text--"; |
| final String t2text = "--t2 text--"; |
| final String t3text = "--t3 text--"; |
| final String t4text = "--t4 text--"; |
| |
| t1.getPresentation().setMainDescription(t1text); |
| t2.getPresentation().setMainDescription(t2text); |
| t3.getPresentation().setMainDescription(t3text); |
| //t4.getPresentation().setMainDescription(t4text); |
| |
| // 1 |
| LibraryTestHelper.setReplaces(t2, t1); |
| LibraryTestHelper.setContributes(t3, t1); |
| LibraryTestHelper.setExtends(t4, t1); |
| |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t4.getPresentation(), t4, feature, config); |
| assertEquals(t2text, text); |
| |
| // 2 |
| LibraryTestHelper.setContributes(t3, t2); |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t4.getPresentation(), t4, feature, config); |
| assertTrue(text != null |
| && text.indexOf(t2text) >= 0 |
| && text.indexOf(t3text) >= 0 ); |
| |
| // 3 since t3 contributes to t4, the attribute value from base is not inherited. |
| LibraryTestHelper.setContributes(t3, t4); |
| text = (String)ConfigurationHelper.calcAttributeFeatureValue(t4.getPresentation(), t4, feature, config); |
| assertTrue(text != null |
| && text.indexOf(t3text) >= 0 ); |
| |
| } |
| |
| } |