| /******************************************************************************* |
| * Copyright (c) 2012-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 v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| ******************************************************************************/ |
| package org.eclipse.emf.emfstore.client.api.test; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.fail; |
| |
| import java.util.List; |
| |
| import org.eclipse.core.runtime.NullProgressMonitor; |
| import org.eclipse.emf.emfstore.client.ESLocalProject; |
| import org.eclipse.emf.emfstore.client.ESWorkspace; |
| import org.eclipse.emf.emfstore.client.ESWorkspaceProvider; |
| import org.eclipse.emf.emfstore.client.test.common.cases.ESTestWithRemoteProject; |
| import org.eclipse.emf.emfstore.client.test.common.util.ProjectUtil; |
| import org.eclipse.emf.emfstore.server.exceptions.ESException; |
| import org.eclipse.emf.emfstore.server.model.ESBranchInfo; |
| import org.eclipse.emf.emfstore.server.model.ESHistoryInfo; |
| import org.eclipse.emf.emfstore.server.model.query.ESHistoryQuery; |
| import org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec; |
| import org.eclipse.emf.emfstore.server.model.versionspec.ESTagVersionSpec; |
| import org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec; |
| import org.junit.AfterClass; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| |
| public class RemoteProjectTest extends ESTestWithRemoteProject { |
| |
| private static final String BRANCH_NAME = "trunk"; //$NON-NLS-1$ |
| private static final String TAG_NAME = "MyTag"; //$NON-NLS-1$ |
| |
| @BeforeClass |
| public static void beforeClass() { |
| startEMFStore(); |
| } |
| |
| @AfterClass |
| public static void afterClass() { |
| stopEMFStore(); |
| } |
| |
| @Test |
| public void testGetServer() { |
| assertEquals(getServer(), getRemoteProject().getServer()); |
| } |
| |
| @Test |
| public void testGetProjectName() { |
| assertEquals(ProjectUtil.defaultName(), getRemoteProject().getProjectName()); |
| } |
| |
| @Test |
| public void testGetProjectID() { |
| assertNotNull(getRemoteProject().getGlobalProjectId()); |
| } |
| |
| @Test |
| public void testFetchAndAddToWorkspace() { |
| try { |
| final ESLocalProject localProject = getRemoteProject().fetch(getRemoteProject().getProjectName(), |
| getUsersession(), |
| getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| new NullProgressMonitor()); |
| |
| final ESWorkspace ws = ESWorkspaceProvider.INSTANCE.getWorkspace(); |
| // one project is always available |
| assertEquals(1, ws.getLocalProjects().size()); |
| |
| localProject.addToWorkspace(new NullProgressMonitor()); |
| |
| assertEquals(2, ws.getLocalProjects().size()); |
| } catch (final ESException e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| @Test |
| public void testCheckoutSession() { |
| try { |
| final ESLocalProject localProject = getRemoteProject().checkout( |
| getRemoteProject().getProjectName(), |
| getUsersession(), |
| new NullProgressMonitor()); |
| assertEquals(getRemoteProject().getProjectName(), localProject.getProjectName()); |
| assertEquals(getRemoteProject().getGlobalProjectId(), localProject.getRemoteProject().getGlobalProjectId()); |
| } catch (final ESException e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| @Test |
| public void testCheckoutSessionProgress() { |
| try { |
| final ESLocalProject localProject = getRemoteProject().checkout(getRemoteProject().getProjectName(), |
| getUsersession(), |
| new NullProgressMonitor()); |
| assertEquals(getRemoteProject().getProjectName(), localProject.getProjectName()); |
| assertEquals(getRemoteProject().getGlobalProjectId(), localProject.getRemoteProject().getGlobalProjectId()); |
| } catch (final ESException e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| @Test |
| public void testCheckoutSessionProgressNoFetch() { |
| try { |
| final ESLocalProject localProject = getRemoteProject().checkout( |
| getRemoteProject().getProjectName(), |
| getUsersession(), |
| getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| new NullProgressMonitor()); |
| assertEquals(getRemoteProject().getProjectName(), localProject.getProjectName()); |
| assertEquals(getRemoteProject().getGlobalProjectId(), localProject.getRemoteProject().getGlobalProjectId()); |
| } catch (final ESException e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| @Test |
| public void testCheckoutSessionProgressFetch() { |
| try { |
| final ESLocalProject localProject = getRemoteProject().checkout(getRemoteProject().getProjectName(), |
| getUsersession(), |
| getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| new NullProgressMonitor()); |
| assertEquals(getRemoteProject().getProjectName(), localProject.getProjectName()); |
| assertEquals(getRemoteProject().getGlobalProjectId(), localProject.getRemoteProject().getGlobalProjectId()); |
| } catch (final ESException e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| @Test |
| public void testGetBranches() { |
| try { |
| final List<? extends ESBranchInfo> branches = getRemoteProject().getBranches(new NullProgressMonitor()); |
| assertEquals(1, branches.size()); |
| } catch (final ESException e) { |
| fail(e.getMessage()); |
| } |
| } |
| |
| @Test |
| public void testGetHeadVersion() throws ESException { |
| ESPrimaryVersionSpec versionSpec; |
| versionSpec = getRemoteProject().getHeadVersion(new NullProgressMonitor()); |
| assertNotNull(versionSpec); |
| } |
| |
| @Test |
| public void testGetHeadVersionFetch() throws ESException { |
| final ESPrimaryVersionSpec versionSpec = getRemoteProject().getHeadVersion(new NullProgressMonitor()); |
| assertNotNull(versionSpec); |
| } |
| |
| @Test |
| public void testGetHistoryInfosSession() throws ESException { |
| final NullProgressMonitor monitor = new NullProgressMonitor(); |
| final List<? extends ESHistoryInfo> historyInfos = getRemoteProject().getHistoryInfos( |
| getUsersession(), |
| ESHistoryQuery.FACTORY |
| .pathQuery(getRemoteProject().getHeadVersion(monitor), |
| getRemoteProject().getHeadVersion(monitor), true, true), |
| monitor); |
| assertEquals(1, historyInfos.size()); |
| } |
| |
| @Test |
| public void testGetHistoryInfos() throws ESException { |
| final NullProgressMonitor monitor = new NullProgressMonitor(); |
| final List<? extends ESHistoryInfo> historyInfos = getRemoteProject().getHistoryInfos( |
| ESHistoryQuery.FACTORY.pathQuery( |
| getRemoteProject().getHeadVersion(monitor), |
| getRemoteProject().getHeadVersion(monitor), true, true), |
| monitor); |
| assertEquals(1, historyInfos.size()); |
| } |
| |
| @Test |
| public void testAddTag() throws ESException { |
| final ESTagVersionSpec tagSpec = ESVersionSpec.FACTORY.createTAG(TAG_NAME, BRANCH_NAME); |
| final NullProgressMonitor monitor = new NullProgressMonitor(); |
| getRemoteProject().addTag(getRemoteProject().getHeadVersion(monitor), tagSpec, monitor); |
| assertEquals(getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| getRemoteProject().resolveVersionSpec(tagSpec, new NullProgressMonitor())); |
| } |
| |
| @Test(expected = ESException.class) |
| public void testRemoveTag() throws ESException { |
| final ESTagVersionSpec tagSpec = ESVersionSpec.FACTORY.createTAG(TAG_NAME, BRANCH_NAME); |
| final NullProgressMonitor monitor = new NullProgressMonitor(); |
| getRemoteProject().addTag(getRemoteProject().getHeadVersion(monitor), tagSpec, monitor); |
| assertEquals(getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| getRemoteProject().resolveVersionSpec(tagSpec, new NullProgressMonitor())); |
| getRemoteProject().removeTag(getRemoteProject().getHeadVersion(new NullProgressMonitor()), tagSpec, |
| new NullProgressMonitor()); |
| getRemoteProject().resolveVersionSpec(tagSpec, new NullProgressMonitor()); |
| fail("If no tag is there we should get an exception!"); //$NON-NLS-1$ |
| } |
| |
| @Test |
| public void testResolveVersion() throws ESException { |
| final ESTagVersionSpec tagSpec = ESVersionSpec.FACTORY.createTAG(TAG_NAME, BRANCH_NAME); |
| final NullProgressMonitor monitor = new NullProgressMonitor(); |
| getRemoteProject().addTag(getRemoteProject().getHeadVersion(monitor), tagSpec, monitor); |
| assertEquals(getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| getRemoteProject().resolveVersionSpec(tagSpec, new NullProgressMonitor())); |
| } |
| |
| @Test |
| public void testResolveVersionSession() throws ESException { |
| final ESTagVersionSpec tagSpec = ESVersionSpec.FACTORY.createTAG(TAG_NAME, BRANCH_NAME); |
| final NullProgressMonitor monitor = new NullProgressMonitor(); |
| getRemoteProject().addTag(getRemoteProject().getHeadVersion(monitor), tagSpec, monitor); |
| assertEquals(getRemoteProject().getHeadVersion(new NullProgressMonitor()), |
| getRemoteProject().resolveVersionSpec(getUsersession(), tagSpec, new NullProgressMonitor())); |
| |
| } |
| } |