blob: 4faee1ea68b98915fa35ad68c0e1b831d4a6926b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Neil Mackenzie - initial implementation
******************************************************************************/
package org.eclipse.emf.ecp.workspace.ui.rap.test;
import java.util.Collection;
import org.eclipse.emf.ecp.core.ECPProject;
import org.eclipse.emf.ecp.core.ECPProjectManager;
import org.eclipse.emf.ecp.core.ECPProvider;
import org.eclipse.emf.ecp.core.exceptions.ECPProjectWithNameExistsException;
import org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider;
import org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider.SessionProviderType;
import org.eclipse.emf.ecp.core.util.ECPProperties;
import org.eclipse.emf.ecp.core.util.ECPUtil;
import org.eclipse.emf.ecp.workspace.internal.core.WorkspaceProvider;
import org.junit.Test;
import junit.framework.TestCase;
/**
* @author neil Test use of WorkspaceProvider with RAP and multiple sessions.
*/
@SuppressWarnings("restriction")
public class RAPWorkspace_PTest extends TestCase {
/**
* Test that we can create and retrieve projects using the workspace provider
* when we have multiple sessions.
*/
@Test
public final void testWorkspaceProviderService() throws ECPProjectWithNameExistsException {
MockSessionProvider.getInstance();
MockSessionProvider.setSessionProvider(SessionProviderType.SAME_SESSION_ID);
final ECPProjectManager projectManager1 = ECPUtil.getECPProjectManager();
final ECPProvider provider1 = ECPUtil.getECPProviderRegistry().getProvider(WorkspaceProvider.NAME);
ECPProperties props1 = ECPUtil.createProperties();
props1.addProperty(WorkspaceProvider.PROP_ROOT_URI, WorkspaceProvider.VIRTUAL_ROOT_URI);
final ECPProject project1 = projectManager1.createProject(provider1, "Test1", props1); //$NON-NLS-1$
MockSessionProvider.setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
final ECPProjectManager projectManager2 = ECPUtil.getECPProjectManager();
final ECPProvider provider2 = ECPUtil.getECPProviderRegistry().getProvider(WorkspaceProvider.NAME);
ECPProperties props2 = ECPUtil.createProperties();
props2.addProperty(WorkspaceProvider.PROP_ROOT_URI, WorkspaceProvider.VIRTUAL_ROOT_URI);
final ECPProject project2 = projectManager2.createProject(provider2, "Test2", props2); //$NON-NLS-1$
assertNotSame(projectManager1, projectManager2);
final Collection<ECPProject> projects1 = projectManager1.getProjects();
assertEquals(1, projects1.size());
assertTrue(projects1.contains(project1));
final Collection<ECPProject> projects2 = projectManager2.getProjects();
assertEquals(1, projects2.size());
assertTrue(projects2.contains(project2));
}
}