Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-03-27 20:08:22 +0000
committerMichael Valenta2002-03-27 20:08:22 +0000
commit3ff2fb68928112c48847b87588f4bb07707a6c60 (patch)
tree7f585bd2e40fb254c3b7730e264fc541d3fda9b2 /tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java
parent7a70ff52aa9dedebb943b5bccea65b90b63a4efe (diff)
downloadeclipse.platform.team-3ff2fb68928112c48847b87588f4bb07707a6c60.tar.gz
eclipse.platform.team-3ff2fb68928112c48847b87588f4bb07707a6c60.tar.xz
eclipse.platform.team-3ff2fb68928112c48847b87588f4bb07707a6c60.zip
*** empty log message ***
Diffstat (limited to 'tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java')
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java
new file mode 100644
index 000000000..5f57ef4d6
--- /dev/null
+++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2002 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ ******************************************************************************/
+package org.eclipse.team.tests.ccvs.core.provider;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.team.ccvs.core.CVSProviderPlugin;
+import org.eclipse.team.ccvs.core.ICVSFile;
+import org.eclipse.team.ccvs.core.ICVSFolder;
+import org.eclipse.team.ccvs.core.ICVSResourceVisitor;
+import org.eclipse.team.core.TeamException;
+import org.eclipse.team.internal.ccvs.core.CVSException;
+import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
+import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
+import org.eclipse.team.internal.ccvs.core.util.ResourceDeltaSyncHandler;
+import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
+import org.eclipse.team.tests.ccvs.core.EclipseTest;
+
+public class ResourceDeltaTest extends EclipseTest {
+
+ /**
+ * Constructor for ResourceDeltaTest.
+ */
+ public ResourceDeltaTest() {
+ super();
+ }
+
+ /**
+ * Constructor for ResourceDeltaTest.
+ * @param name
+ */
+ public ResourceDeltaTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(ResourceDeltaTest.class);
+ return new CVSTestSetup(suite);
+ //return new CVSTestSetup(new ResourceDeltaTest("testOrphanedSubtree"));
+ }
+
+ public void assertNotManaged(ICVSFile cvsFile) throws CVSException {
+ assertTrue("File " + cvsFile.getName() + " should not be managed", ! cvsFile.isManaged());
+ }
+
+ public void assertNotManaged(ICVSFolder cvsFolder) throws CVSException {
+ assertTrue("Folder " + cvsFolder.getName() + " should not be managed", ! cvsFolder.isManaged());
+ assertTrue("Folder " + cvsFolder.getName() + " should not be a cvs folder", ! cvsFolder.isCVSFolder());
+ cvsFolder.acceptChildren(new ICVSResourceVisitor() {
+ public void visitFile(ICVSFile file) throws CVSException {
+ assertNotManaged(file);
+ }
+ public void visitFolder(ICVSFolder folder) throws CVSException {
+ assertNotManaged(folder);
+ }
+ });
+ }
+
+ public void assertAdditionMarkerFor(IResource resource, boolean exists) throws CoreException {
+ if ( ! CVSProviderPlugin.getPlugin().getShowTasksOnAddAndDelete()) return;
+ IMarker[] markers = resource.findMarkers(ResourceDeltaSyncHandler.ADDITION_MARKER, false, IResource.DEPTH_ZERO);
+ if (exists) {
+ assertTrue("Addition marker doesn't exist for " + resource.getName(), markers.length == 1);
+ } else {
+ assertTrue("Addition marker exists for " + resource.getName(), markers.length == 0);
+ }
+ }
+
+ public void assertDeletionMarkerFor(IResource resource, boolean exists) throws CoreException {
+ if ( ! CVSProviderPlugin.getPlugin().getShowTasksOnAddAndDelete()) return;
+ IMarker marker = null;
+ if (resource.getParent().exists()) {
+ String name = resource.getName();
+ IMarker[] markers = resource.getParent().findMarkers(ResourceDeltaSyncHandler.DELETION_MARKER, false, IResource.DEPTH_ZERO);
+ for (int i = 0; i < markers.length; i++) {
+ IMarker iMarker = markers[i];
+ String markerName = (String)iMarker.getAttribute(ResourceDeltaSyncHandler.NAME_ATTRIBUTE);
+ if (markerName.equals(name)) {
+ marker = iMarker;
+ break;
+ }
+ }
+ }
+ if (exists) {
+ assertTrue("Deletion marker doesn't exist for " + resource.getName(), marker != null);
+ } else {
+ assertTrue("Deletion marker exists for " + resource.getName(), marker == null);
+ }
+ }
+
+ public void testOrphanedSubtree() throws TeamException, CoreException {
+ IProject project = createProject("testOrphanedSubtree", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
+ IFolder folder = project.getFolder(new Path("folder1"));
+ folder.move(new Path("moved"), false, false, null);
+ folder = project.getFolder(new Path("moved"));
+ ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder);
+ assertNotManaged(cvsFolder);
+ assertAdditionMarkerFor(folder, true);
+ }
+
+ public void testDeletionHandling() throws TeamException, CoreException {
+ IProject project = createProject("testDeletionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
+ addResources(project, new String[] {"added.txt"}, false);
+ assertAdditionMarkerFor(project.getFile("added.txt"), false);
+ deleteResources(project, new String[] {"added.txt", "deleted.txt"}, false);
+ ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("added.txt"));
+ assertNotManaged(file);
+ assertDeletionMarkerFor(project.getFile("added.txt"), false);
+ file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt"));
+ assertTrue("File " + file.getName() + " should be managed", file.isManaged());
+ ResourceSyncInfo info = file.getSyncInfo();
+ assertTrue("File " + file.getName() + " should be marked as deleted", info.isDeleted());
+ assertDeletionMarkerFor(project.getFile("deleted.txt"), true);
+ }
+
+ public void testFileAdditionHandling() throws TeamException, CoreException {
+ IProject project = createProject("testFileAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
+ deleteResources(project, new String[] {"deleted.txt"}, false);
+ assertDeletionMarkerFor(project.getFile("deleted.txt"), true);
+ addResources(project, new String[] {"deleted.txt"}, false);
+ ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt"));
+ assertTrue("File " + file.getName() + " should be managed", file.isManaged());
+ ResourceSyncInfo info = file.getSyncInfo();
+ assertTrue("File " + file.getName() + " should not be marked as deleted", ! info.isDeleted());
+ assertTrue("File " + file.getName() + " should not be marked as addition", ! info.isAdded());
+ assertDeletionMarkerFor(project.getFile("deleted.txt"), false);
+ assertAdditionMarkerFor(project.getFile("added.txt"), false);
+ }
+
+ public void testFolderAdditionHandling() throws TeamException, CoreException {
+ IProject project = createProject("testFolderAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
+ IFolder folder = project.getFolder("newfolder");
+ folder.create(false, true, null);
+ assertAdditionMarkerFor(folder, true);
+ getProvider(project).add(new IResource[] {folder}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
+ assertAdditionMarkerFor(folder, false);
+ }
+}

Back to the top