/******************************************************************************* * Copyright (c) 2014 Obeo. * 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: * Obeo - initial API and implementation *******************************************************************************/ package org.eclipse.emf.compare.uml2.tests.edit.provider; import com.google.common.collect.Lists; import java.io.IOException; import java.util.HashMap; import java.util.regex.Pattern; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.compare.tests.postprocess.data.TestPostProcessor; import org.eclipse.emf.compare.uml2.internal.postprocessor.StereotypedElementChangePostProcessor; import org.eclipse.emf.compare.uml2.internal.provider.decorator.UMLProfileItemProviderAdapterFactoryDecorator; import org.eclipse.emf.compare.uml2.profile.test.uml2comparetestprofile.provider.UML2CompareTestProfileItemProviderAdapterFactory; import org.eclipse.emf.compare.uml2.tests.AbstractStaticProfileTest; import org.eclipse.emf.compare.uml2.tests.AbstractUMLInputData; import org.eclipse.emf.compare.uml2.tests.edit.provider.data.ModelInputData; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; /** * Tests the {@link UMLProfileItemProviderAdapterFactoryDecorator} on a model with a static profile. * * @author <a href="mailto:arthur.daussy@obeo.fr">Arthur Daussy</a> */ public class StaticStereotypedElementItemProviderTest extends AbstractStaticProfileTest { private ModelInputData inputData = new ModelInputData(); @BeforeClass public static void setupClass() { fillRegistriesForStatic(); } @AfterClass public static void teardownClass() { resetRegistriesForStatic(); } @Override protected AbstractUMLInputData getInput() { return inputData; } @Override protected void registerPostProcessors( org.eclipse.emf.compare.postprocessor.IPostProcessor.Descriptor.Registry<String> postProcessorRegistry) { super.registerPostProcessors(postProcessorRegistry); postProcessorRegistry.put(StereotypedElementChangePostProcessor.class.getName(), new TestPostProcessor.TestPostProcessorDescriptor( Pattern.compile("http://www.eclipse.org/uml2/\\d\\.0\\.0/UML"), null, //$NON-NLS-1$ new StereotypedElementChangePostProcessor(), 25)); } @Before @Override public void before() { super.before(); } @Test public void testIconsAndLabelsStaticProfile() throws IOException { AdapterFactory stereotypedElementItemProviderDecorator = new ComposedAdapterFactory( Lists.<AdapterFactory> newArrayList(new UMLProfileItemProviderAdapterFactoryDecorator(), new UML2CompareTestProfileItemProviderAdapterFactory())); // Map<Ordered list of applied stereotyped, Expected icon> HashMap<String, String> expectedStaticIcons = new HashMap<String, String>(); expectedStaticIcons.put("ACliche", "eclipse_luna.gif"); //$NON-NLS-1$ //$NON-NLS-2$ expectedStaticIcons.put("ACliche,ACliche2", "eclipse_luna.gif"); //$NON-NLS-1$//$NON-NLS-2$ expectedStaticIcons.put("ACliche2,ACliche", "eclipse_kepler.gif"); //$NON-NLS-1$//$NON-NLS-2$ expectedStaticIcons.put("ACliche2", "eclipse_kepler.gif"); //$NON-NLS-1$ //$NON-NLS-2$ expectedStaticIcons.put("ACliche3", "ACliche3.gif"); //$NON-NLS-1$ //$NON-NLS-2$ Resource resource = inputData.getStaticProfileModel(); StereotypedElementItemProviderTestUtil.checkIconAndLabel(stereotypedElementItemProviderDecorator, expectedStaticIcons, resource); } }