/******************************************************************************* * Copyright (c) 2009, 2010 SAP AG 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: * SAP AG - initial API and implementation ******************************************************************************/ package de.hpi.sam.bp2009.solution.scopeProvider.tests; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import junit.framework.TestCase; import junit.textui.TestRunner; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl; import org.eclipse.emf.query2.QueryContext; import de.hpi.sam.bp2009.solution.queryContextScopeProvider.ProjectBasedQueryContextScopeProvider; import de.hpi.sam.bp2009.solution.queryContextScopeProvider.impl.ProjectBasedQueryContextScopeProviderImpl; import de.hpi.sam.petriNet.PetriNetFactory; import de.hpi.sam.petriNet.PetriNetPackage; /** * <!-- begin-user-doc --> A test case for the model object '<em><b>Project Based Scope Provider</b></em>'. <!-- end-user-doc --> * <p> * The following operations are tested: * <ul> * <li> * {@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * <em>Setup For EObjects</em>}</li> * <li> * {@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * <em>Setup For Resources</em>}</li> * <li> * {@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * <em>Setup For Resource Sets</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getForwardScopeAsEObjects() <em>Get Forward Scope * As EObjects</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getForwardScopeAsProjects() <em>Get Forward Scope * As Projects</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getForwardScopeAsResources() <em>Get Forward * Scope As Resources</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getForwardScopeAsURIs() <em>Get Forward Scope As * UR Is</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getBackwardScopeAsEObjects() <em>Get Backward * Scope As EObjects</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getBackwardScopeAsProjects() <em>Get Backward * Scope As Projects</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getBackwardScopeAsResources() <em>Get Backward * Scope As Resources</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ProjectBasedScopeProvider#getBackwardScopeAsURIs() <em>Get Backward Scope * As UR Is</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setInMemoryResources(org.eclipse.emf.common.util.Collection) * <em>Set In Memory Resources</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getInMemoryResources() <em>Get In Memory Resources</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsQueryContext() <em>Get Forward Scope As * Query Context</em>}</li> * <li>{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsQueryContext() <em>Get Backward Scope As * Query Context</em>}</li> * </ul> * </p> * * @generated */ public class ProjectBasedScopeProviderTest extends TestCase { class Container { IProject p; Resource r1; Resource r2; EObject o; } private Container c1 = new Container(); private Container c2 = new Container(); /** * The fixture for this Project Based Scope Provider test case. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected ProjectBasedQueryContextScopeProvider fixture = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public static void main(String[] args) { TestRunner.run(ProjectBasedScopeProviderTest.class); } /** * Constructs a new Project Based Scope Provider test case with the given name. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public ProjectBasedScopeProviderTest(String name) { super(name); } /** * Sets the fixture for this Project Based Scope Provider test case. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected void setFixture(ProjectBasedQueryContextScopeProvider fixture) { this.fixture = fixture; } /** * Returns the fixture for this Project Based Scope Provider test case. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected ProjectBasedQueryContextScopeProvider getFixture() { return fixture; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @see junit.framework.TestCase#setUp() * @generated NOT */ @Override protected void setUp() throws CoreException { EPackage metaModel = PetriNetPackage.eINSTANCE; c1 = serializeModelToProject("1", metaModel); c2 = serializeModelToProject("2", metaModel); IProject[] projects = { c2.p }; IProjectDescription desc = c1.p.getDescription(); desc.setReferencedProjects(projects); c1.p.setDescription(desc, null); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @see junit.framework.TestCase#tearDown() * @generated NOT */ @Override protected void tearDown() throws CoreException { setFixture(null); c1.p.delete(true, null); c2.p.delete(true, null); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * <em>Setup For EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForEObjects__Collection() { int number = c1.r1.getContents().size(); setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1.getContents().get(number - 1))); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * <em>Setup For EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForEObjects__Collection2() { EObject[] list = new EObject[2]; int number = c1.r1.getContents().size(); list[0] = (c1.r1.getContents().get(number - 1)); number = c2.r1.getContents().size(); list[1] = (c2.r1.getContents().get(number - 1)); setFixture(new ProjectBasedQueryContextScopeProviderImpl(list)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); result.add(c2.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * <em>Setup For EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForEObjects(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForEObjects__Collection3() { EObject[] list = new EObject[2]; int number = c1.r1.getContents().size(); list[0] = (c1.r1.getContents().get(number - 1)); number = c1.r2.getContents().size(); list[1] = (c1.r2.getContents().get(number - 1)); setFixture(new ProjectBasedQueryContextScopeProviderImpl(list)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * <em>Setup For Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForResources__Collection() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * <em>Setup For Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForResources__Collection2() { Resource[] list = new Resource[2]; list[0] = c1.r1; list[1] = c2.r1; setFixture(new ProjectBasedQueryContextScopeProviderImpl(list)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); result.add(c2.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * <em>Setup For Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResources(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForResources__Collection3() { Resource[] list = new Resource[2]; list[0] = (c1.r1); list[1] = (c1.r2); setFixture(new ProjectBasedQueryContextScopeProviderImpl(list)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * <em>Setup For Resource Sets</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForResourceSets__Collection() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1.getResourceSet())); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * <em>Setup For Resource Sets</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForResourceSets__Collection2() { Resource[] list = new Resource[2]; list[0] = (c1.r1); list[1] = (c2.r1); setFixture(new ProjectBasedQueryContextScopeProviderImpl(list)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); result.add(c2.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the ' * {@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * <em>Setup For Resource Sets</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#setupForResourceSets(org.eclipse.emf.common.util.Collection) * @generated NOT */ public void testSetupForResourceSets__Collection3() { ResourceSet rs = new ResourceSetImpl(); rs.getResources().add(c1.r1); rs.getResources().add(c1.r2); setFixture(new ProjectBasedQueryContextScopeProviderImpl(rs)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> initprojects = getFixture().getInitialProjects(); assertTrue(initprojects.containsAll(result) && result.containsAll(initprojects)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsEObjects() * <em>Get Forward Scope As EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsEObjects() * @generated NOT */ public void testGetForwardScopeAsEObjects() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<EObject> result = new ArrayList<EObject>(); result.addAll(iteratorToCollection(c1.r1.getAllContents())); result.addAll(iteratorToCollection(c1.r2.getAllContents())); result.addAll(iteratorToCollection(c2.r1.getAllContents())); result.addAll(iteratorToCollection(c2.r2.getAllContents())); Collection<EObject> scope = scopeAsEObjects(getFixture().getForwardScopeAsResources()); assertEquals(result.size(), scope.size()); } private Collection<EObject> scopeAsEObjects(Collection<Resource> resources) { Collection<EObject> result = new HashSet<EObject>(); for (Resource resource : resources) { if (!resource.isLoaded()) try { resource.load(null); } catch (IOException e) { e.printStackTrace(); } result.addAll(iteratorToCollection(resource.getAllContents())); } return result; } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsEObjects() * <em>Get Forward Scope As EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsEObjects() * @generated NOT */ public void testGetForwardScopeAsEObjects2() { int number = c2.r2.getContents().size(); setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r2.getContents().get(number - 1))); ArrayList<EObject> result = new ArrayList<EObject>(); result.addAll(iteratorToCollection(c2.r1.getAllContents())); result.addAll(iteratorToCollection(c2.r2.getAllContents())); Collection<EObject> scope = scopeAsEObjects(getFixture().getForwardScopeAsResources()); assertEquals(result.size(), scope.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsProjects() * <em>Get Forward Scope As Projects</em>}' operation. * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsProjects() * @generated NOT */ public void testGetForwardScopeAsProjects() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); result.add(c2.p); Collection<IProject> scope = getFixture().getForwardScopeAsProjects(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsResources() * <em>Get Forward Scope As Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsResources() * @generated NOT */ public void testGetForwardScopeAsResources() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<Resource> result = new ArrayList<Resource>(); result.add(c1.r1); result.add(c1.r2); result.add(c2.r1); result.add(c2.r2); Collection<Resource> scope = getFixture().getForwardScopeAsResources(); assertEquals(scope.size(), result.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsResources() * <em>Get Forward Scope As Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsResources() * @generated NOT */ public void testGetForwardScopeAsResources2() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r1)); ArrayList<Resource> result = new ArrayList<Resource>(); result.add(c2.r1); result.add(c2.r2); Collection<Resource> scope = getFixture().getForwardScopeAsResources(); assertEquals(scope.size(), result.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsURIs() * <em>Get Forward Scope As UR Is</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsURIs() * @generated NOT */ public void testGetForwardScopeAsURIs() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r1)); ArrayList<URI> result = new ArrayList<URI>(); result.add(c2.r1.getURI()); result.add(c2.r2.getURI()); Collection<URI> scope = getFixture().getForwardScopeAsURIs(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsURIs() * <em>Get Forward Scope As UR Is</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsURIs() * @generated NOT */ public void testGetForwardScopeAsURIs2() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<URI> result = new ArrayList<URI>(); result.add(c1.r1.getURI()); result.add(c1.r2.getURI()); result.add(c2.r1.getURI()); result.add(c2.r2.getURI()); Collection<URI> scope = getFixture().getForwardScopeAsURIs(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsEObjects() * <em>Get Backward Scope As EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsEObjects() * @generated NOT */ public void testGetBackwardScopeAsEObjects() { int number = c2.r2.getContents().size(); setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r2.getContents().get(number - 1))); ArrayList<EObject> result = new ArrayList<EObject>(); result.addAll(iteratorToCollection(c1.r1.getAllContents())); result.addAll(iteratorToCollection(c1.r2.getAllContents())); result.addAll(iteratorToCollection(c2.r1.getAllContents())); result.addAll(iteratorToCollection(c2.r2.getAllContents())); Collection<EObject> scope = scopeAsEObjects(getFixture().getBackwardScopeAsResources()); assertEquals(result.size(), scope.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsEObjects() * <em>Get Backward Scope As EObjects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsEObjects() * @generated NOT */ public void testGetBackwardScopeAsEObjects2() { int number = c1.r1.getContents().size(); setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1.getContents().get(number - 1))); ArrayList<EObject> result = new ArrayList<EObject>(); result.addAll(iteratorToCollection(c1.r1.getAllContents())); result.addAll(iteratorToCollection(c1.r2.getAllContents())); Collection<EObject> scope = scopeAsEObjects(getFixture().getBackwardScopeAsResources()); assertEquals(result.size(), scope.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsProjects() * <em>Get Backward Scope As Projects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsProjects() * @generated NOT */ public void testGetBackwardScopeAsProjects() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r1)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); result.add(c2.p); Collection<IProject> scope = getFixture().getBackwardScopeAsProjects(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsProjects() * <em>Get Backward Scope As Projects</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsProjects() * @generated NOT */ public void testGetBackwardScopeAsProjects2() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<IProject> result = new ArrayList<IProject>(); result.add(c1.p); Collection<IProject> scope = getFixture().getBackwardScopeAsProjects(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsResources() * <em>Get Backward Scope As Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsResources() * @generated NOT */ public void testGetBackwardScopeAsResources() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r1)); ArrayList<Resource> result = new ArrayList<Resource>(); result.add(c1.r1); result.add(c1.r2); result.add(c2.r1); result.add(c2.r2); Collection<Resource> scope = getFixture().getBackwardScopeAsResources(); assertEquals(scope.size(), result.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsResources() * <em>Get Backward Scope As Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsResources() * @generated NOT */ public void testGetBackwardScopeAsResources2() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<Resource> result = new ArrayList<Resource>(); result.add(c1.r1); result.add(c1.r2); Collection<Resource> scope = getFixture().getBackwardScopeAsResources(); assertEquals(scope.size(), result.size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsURIs() * <em>Get Backward Scope As UR Is</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsURIs() * @generated NOT */ public void testGetBackwardScopeAsURIs() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c2.r1)); ArrayList<URI> result = new ArrayList<URI>(); result.add(c1.r1.getURI()); result.add(c1.r2.getURI()); result.add(c2.r1.getURI()); result.add(c2.r2.getURI()); Collection<URI> scope = getFixture().getBackwardScopeAsURIs(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getInMemoryResources() * <em>Get In Memory Resources</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getInMemoryResources() * @generated NOT */ public void testGetInMemoryResources() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(new ResourceSetImpl().createResource(URI.createURI("http://something.ru")))); assert (getFixture().getInMemoryResources().size() == 0); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsQueryContext() * <em>Get Forward Scope As Query Context</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getForwardScopeAsQueryContext() * @generated NOT */ public void testGetForwardScopeAsQueryContext() { //in this test all resources must be located in the same resourceSet, //that is why all resources from c2 are moved to the resourceSet of c1 c1.r1.getResourceSet().getResources().addAll(c2.r1.getResourceSet().getResources()); setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); QueryContext context = getFixture().getForwardScopeAsQueryContext(); ArrayList<URI> result = new ArrayList<URI>(); result.add(c1.r1.getURI()); result.add(c1.r2.getURI()); result.add(c2.r1.getURI()); result.add(c2.r2.getURI()); ArrayList<Resource> resultAsRs = new ArrayList<Resource>(); resultAsRs.add(c1.r1); resultAsRs.add(c1.r2); resultAsRs.add(c2.r1); resultAsRs.add(c2.r2); URI[] scope = context.getResourceScope(); assertTrue(Arrays.asList(scope).containsAll(result) && result.containsAll(Arrays.asList(scope))); assertTrue(resultAsRs.size() == context.getResourceSet().getResources().size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsQueryContext() * <em>Get Backward Scope As Query Context</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsQueryContext() * @generated NOT */ public void testGetBackwardScopeAsQueryContext() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); QueryContext context = getFixture().getBackwardScopeAsQueryContext(); ArrayList<URI> result = new ArrayList<URI>(); result.add(c1.r1.getURI()); result.add(c1.r2.getURI()); ArrayList<Resource> resultAsRs = new ArrayList<Resource>(); resultAsRs.add(c1.r1); resultAsRs.add(c1.r2); URI[] scope = context.getResourceScope(); assertTrue(Arrays.asList(scope).containsAll(result) && result.containsAll(Arrays.asList(scope))); assertTrue(resultAsRs.size() == context.getResourceSet().getResources().size()); } /** * Tests the '{@link de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsURIs() * <em>Get Backward Scope As UR Is</em>}' operation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see de.hpi.sam.bp2009.solution.scopeProvider.ScopeProvider#getBackwardScopeAsURIs() * @generated NOT */ public void testGetBackwardScopeAsURIs2() { setFixture(new ProjectBasedQueryContextScopeProviderImpl(c1.r1)); ArrayList<URI> result = new ArrayList<URI>(); result.add(c1.r1.getURI()); result.add(c1.r2.getURI()); Collection<URI> scope = getFixture().getBackwardScopeAsURIs(); assertTrue(scope.containsAll(result) && result.containsAll(scope)); } private Collection<EObject> iteratorToCollection(Iterator<?> treeIterator) { Collection<EObject> treeAsList = new ArrayList<EObject>(); while (treeIterator.hasNext()) { Object next = treeIterator.next(); if (next instanceof EObject) treeAsList.add((EObject) next); } return treeAsList; } @SuppressWarnings("unused") private Resource serializeMetaModel(EPackage package1, String uri) { ResourceSet metaResourceSet = new ResourceSetImpl(); /* * Register XML Factory implementation to handle .ecore files */ metaResourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", new XMLResourceFactoryImpl()); /* * Create empty resource with the given URI */ Resource metaResource = metaResourceSet.createResource(URI.createURI(uri)); /* * Add bookStoreEPackage to contents list of the resource */ metaResource.getContents().add(package1); package1.setNsURI(uri); try { /* * Save the resource */ metaResource.save(null); } catch (IOException e) { e.printStackTrace(); } return metaResource; } private Container serializeModelToProject(String projectName, EPackage metaModel) { IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); IProjectDescription desc = ResourcesPlugin.getWorkspace().newProjectDescription(projectName); try { proj.create(desc, null); proj.open(new NullProgressMonitor()); } catch (CoreException ex) { ex.printStackTrace(); } IFolder folder = proj.getFolder("model"); try { folder.create(false, true, null); } catch (CoreException e1) { e1.printStackTrace(); } ResourceSet resourceSet = new ResourceSetImpl(); Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("xmi", new XMLResourceFactoryImpl()); resourceSet.getPackageRegistry().put(metaModel.getNsURI(), metaModel); Resource resource = resourceSet.createResource(URI.createURI(getFolderAsPlatformURI(folder) + "/test1.xmi")); resource.getContents().add(PetriNetFactory.eINSTANCE.createPlace()); /* * Save the resource using OPTION_SCHEMA_LOCATION save option toproduce xsi:schemaLocation attribute in the document */ Map<String, Boolean> options = new HashMap<String, Boolean>(); options.put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE); try { resource.save(options); } catch (IOException e) { e.printStackTrace(); } Resource resource1 = resourceSet.createResource(URI.createURI(getFolderAsPlatformURI(folder) + "/test2.xmi")); // RandomGeneratorFactory.eINSTANCE.createRandomGenerator().generateRandomModel(1, resource1,metaModel); resource1.getContents().add(PetriNetFactory.eINSTANCE.createPlace()); /* * Save the resource using OPTION_SCHEMA_LOCATION save option to produce xsi:schemaLocation attribute in the document */ Map<String, Boolean> options1 = new HashMap<String, Boolean>(); options1.put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE); try { resource1.save(options1); } catch (IOException e) { e.printStackTrace(); } Container c = new Container(); c.p = proj; c.r1 = resource; c.r2 = resource1; return c; } private String getFolderAsPlatformURI(IFolder folder) { return "platform:/resource/"+folder.getProject().getName()+"/"+folder.getProjectRelativePath().toString(); } } // ScopeProviderTest