diff options
Diffstat (limited to 'tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java')
-rw-r--r-- | tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java | 262 |
1 files changed, 0 insertions, 262 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java deleted file mode 100644 index a28544f73..000000000 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java +++ /dev/null @@ -1,262 +0,0 @@ -package org.eclipse.team.tests.ccvs.core.provider; -/* - * (c) Copyright IBM Corp. 2000, 2002. - * All Rights Reserved. - */ -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.team.ccvs.core.CVSTag; -import org.eclipse.team.ccvs.core.CVSTeamProvider; -import org.eclipse.team.ccvs.core.ICVSRemoteFile; -import org.eclipse.team.ccvs.core.ICVSRemoteFolder; -import org.eclipse.team.ccvs.core.ICVSRemoteResource; -import org.eclipse.team.ccvs.core.ILogEntry; -import org.eclipse.team.core.TeamException; -import org.eclipse.team.core.sync.IRemoteResource; -import org.eclipse.team.core.sync.IRemoteSyncElement; -import org.eclipse.team.internal.ccvs.core.CVSException; -import org.eclipse.team.internal.ccvs.core.client.Session; -import org.eclipse.team.internal.ccvs.core.resources.ICVSResource; -import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder; -import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderTree; -import org.eclipse.team.internal.ccvs.core.util.RemoteFolderTreeBuilder; -import org.eclipse.team.tests.ccvs.core.CVSTestSetup; -import org.eclipse.team.tests.ccvs.core.EclipseTest; - -public class RemoteResourceTest extends EclipseTest { - - public RemoteResourceTest() { - super(); - } - - public RemoteResourceTest(String name) { - super(name); - } - - public static Test suite() { - TestSuite suite = new TestSuite(RemoteResourceTest.class); - return new CVSTestSetup(suite); - //return new CVSTestSetup(new RemoteResourceTest("testFolderAddition")); - } - - protected void assertRemoteMatchesLocal(String message, RemoteFolder remote, IContainer container) throws CVSException, IOException, CoreException { - assertEquals(message, (ICVSResource)remote, Session.getManagedFolder(container.getLocation().toFile()), false, false); - } - - protected void getMembers(ICVSRemoteFolder folder, boolean deep) throws TeamException { - IRemoteResource[] children = folder.members(DEFAULT_MONITOR); - if (deep) { - for (int i=0;i<children.length;i++) { - if (children[i].isContainer()) - getMembers((ICVSRemoteFolder)children[i], deep); - } - } - } - - /** - * RemoteFolderTreeBuilder test - * - * Perform some remote additions, changes and deletions - */ - public void testSimpleChanges() throws TeamException, CoreException, IOException { - - // Create a test project and a copy of it - IProject project = createProject("testRemoteTreeBuilder", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }); - IProject copy = checkoutCopy(project, "-copy"); - - // Make some changes to the copy and commit - IResource[] newResources = buildResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false); - IFile file = copy.getFile("changed.txt"); - file.setContents(getRandomContents(), false, false, null); - CVSTeamProvider provider = getProvider(copy); - provider.add(newResources, IResource.DEPTH_ZERO, DEFAULT_MONITOR); - provider.delete(new IResource[] {copy.getFile("deleted.txt")}, DEFAULT_MONITOR); - provider.checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR); - - // Build the remote tree from the original and ensure it matches the copy - RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR); - assertRemoteMatchesLocal("testSimpleChanges", tree, copy); - } - - /** - * RemoteFolderTreeBuilder test - * - * Create a remote tree from a local workspace with no remote changes. - */ - public void testNoRemoteChanges() throws TeamException, CoreException, IOException { - IProject project = createProject("testNoRemoteChanges", new String[] { "file1.txt", "file2.txt", "folder1/a.txt", "folder2/folder3/b.txt"}); - RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR); - assertRemoteMatchesLocal("testNoRemoteChanges", tree, project); - } - - /** - * RemoteFolderTreeBuilder test - * - * Create a base remote tree from a local workspace with no remote changes. - */ - public void testGetBase() throws TeamException, CoreException, IOException { - IProject project = createProject("testGetBase", new String[] { "file1.txt", "file2.txt", "folder1/a.txt", "folder2/folder3/b.txt"}); - RemoteFolderTree tree = RemoteFolderTreeBuilder.buildBaseTree(getRepository(), Session.getManagedFolder(project.getLocation().toFile()), CVSTag.DEFAULT, DEFAULT_MONITOR); - assertRemoteMatchesLocal("testGetBase", tree, project); - } - - /** - * RemoteFolderTreeBuilder test - * - * Add a nested folder structure remotely and build the remote tree - * from the root. - */ - public void testFolderAddition() throws TeamException, CoreException, IOException { - - // Create a test project - IProject project = createProject("testFolderAddition", new String[] { "file1.txt", "file2.txt", "folder1/", "folder1/a.txt"}); - - // Checkout and modify a copy - IProject copy = checkoutCopy(project, "-copy"); - addResources(copy, new String[] { "folder2/folder3/b.txt" }, false); - getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR); - - // Build the remote tree from the project - RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR); - assertRemoteMatchesLocal("testFolderAddition", tree, copy); - } - - /** - * RemoteFolderTreeBuilder test - * - * Add a nested folder structure remotely and build the remote tree - * from a child - */ - public void testNonRootBuild() throws CoreException, TeamException, IOException { - - // Create a test project - IProject project = createProject("testNonRootBuild", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"}); - - // Checkout and modify a copy - IProject copy = checkoutCopy(project, "-copy"); - IFile file = copy.getFile("folder2/folder3/c.txt"); - file.setContents(getRandomContents(), false, false, null); - addResources(copy, new String[] { "folder2/folder3/add.txt" }, false); - getProvider(copy).delete(new IResource[] {copy.getFile("folder2/folder3/b.txt")}, DEFAULT_MONITOR); - getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR); - - // Build the remote tree from the project - RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project.getFolder("folder2"), CVSTag.DEFAULT, DEFAULT_MONITOR); - assertRemoteMatchesLocal("testNonRootBuild", tree, copy.getFolder("folder2")); - } - - /** - * RemoteResource test - * - */ - public void testGetRemoteResource() throws CoreException, TeamException, IOException { - IProject project = createProject("testGetRemoteResource", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"}); - ICVSRemoteResource file = getProvider(project).getRemoteResource(project.getFile("folder1/a.txt")); - assertTrue("File should exist remotely", file.exists()); - assertEquals("Remote file should match local file", (ICVSResource)file, (ICVSResource)Session.getManagedFile(project.getFile("folder1/a.txt").getLocation().toFile()), false, false); - ICVSRemoteResource folder = getProvider(project).getRemoteResource(project.getFolder("folder2/folder3/")); - getMembers((ICVSRemoteFolder)folder, true); - assertTrue("Folder should exist remotely", folder.exists()); - // XXX this didn't work right. I'll need to check into it later -// assertEquals("Remote folder should match local folder", (ICVSResource)folder, (ICVSResource)Client.getManagedFolder(project.getFolder("folder2/folder3/").getLocation().toFile())); - } - - /* - * Test that the fetch of a tagged tree matches what is checked out for that tag - */ - public void testVersionTag() throws TeamException, CoreException, IOException { - // Create a test project and version it - CVSTag v1Tag = new CVSTag("v1", CVSTag.VERSION); - IProject project = createProject("testVersionTag", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"}); - getProvider(project).tag(new IResource[] {project}, IResource.DEPTH_INFINITE, v1Tag, DEFAULT_MONITOR); - - // Make some changes, additions (including folders) and deletions and commit - IFile file = project.getFile("folder1/a.txt"); - file.setContents(getRandomContents(), false, false, null); - addResources(project, new String[] { "folder2/folder3/add.txt" }, false); - deleteResources(project, new String[] {"folder1/b.txt"}, false); - getProvider(project).checkin(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR); - - // Fetch the remote tree for the version - IRemoteSyncElement tree = getProvider(project).getRemoteSyncTree(project, v1Tag, DEFAULT_MONITOR); - - // Check out the project version - project = checkoutCopy(project, v1Tag); - - // Compare the two - assertEquals("testVersionTag", (ICVSResource)tree.getRemote(), (ICVSResource)Session.getManagedResource(project), false, false); - } - - /* - * Test the fetching of the contents of an empty file - */ - public void testEmptyFile() throws TeamException, CoreException, IOException { - - // Create a project with an empty file - IProject project = createProject("testEmptyFile", new String[] { "file.txt"}); - IFile file = project.getFile("file.txt"); - file.setContents(new ByteArrayInputStream(new byte[0]), false, false, DEFAULT_MONITOR); - commitResources(project, new String[] {"file.txt"}); - - ICVSRemoteResource remote = getProvider(project).getRemoteResource(file); - InputStream in = remote.getContents(DEFAULT_MONITOR); - int count = 0; - while(in.read() != -1) { - count++; - } - assertTrue("Remote file should be empty", count==0); - } - - /* - * Test the fetching of the contents from multiple remote revisions of a file - */ - public void testFileRevisions() throws TeamException, CoreException, IOException { - - // Create a project with an empty file - IProject project = createProject("testEmptyFile", new String[] { "file.txt"}); - IFile file = project.getFile("file.txt"); - file.setContents(new ByteArrayInputStream("hi there".getBytes()), false, false, DEFAULT_MONITOR); - commitResources(project, new String[] {"file.txt"}); - file.setContents(new ByteArrayInputStream("bye there".getBytes()), false, false, DEFAULT_MONITOR); - commitResources(project, new String[] {"file.txt"}); - - ICVSRemoteFile remote = (ICVSRemoteFile)getProvider(project).getRemoteResource(file); - ILogEntry[] entries = remote.getLogEntries(DEFAULT_MONITOR); - for (int i=0;i<entries.length;i++) { - InputStream in = entries[i].getRemoteFile().getContents(DEFAULT_MONITOR); - - if (entries[i].getRevision().equals("1.2")) { - int count = 0; - byte[] buffer = new byte[1024]; - int c; - while((c = in.read()) != -1) { - buffer[count] = (byte)c; - count++; - } - String contents = new String(buffer, 0, count); - assertEquals("the contents of revision 1.2 are not equal", contents, "hi there"); - } else if (entries[i].getRevision().equals("1.3")) { - int count = 0; - byte[] buffer = new byte[1024]; - int c; - while((c = in.read()) != -1) { - buffer[count] = (byte)c; - count++; - } - String contents = new String(buffer, 0, count); - assertEquals("the contents of revision 1.3 are not equal", contents, "bye there"); - } - } - - } -} - |