blob: 27fddda0b36e86f8438690783d641f6c36217502 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.core.tests.harness;
import java.io.InputStream;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
/**
* Tests which use the Eclipse Platform workspace.
*/
public class ExampleWorkspaceTest extends EclipseWorkspaceTest {
/**
* Need a zero argument constructor to satisfy the test harness.
* This constructor should not do any real work nor should it be
* called by user code.
*/
public ExampleWorkspaceTest() {
super();
}
public ExampleWorkspaceTest(String name) {
super(name);
}
protected IProject getTestProject() {
return getWorkspace().getRoot().getProject("testProject");
}
/**
* Returns the test suite for this test class.
*/
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new ExampleWorkspaceTest("testProjectCreation"));
suite.addTest(new ExampleWorkspaceTest("testFolderCreation"));
suite.addTest(new ExampleWorkspaceTest("testFileCreation"));
suite.addTest(new ExampleWorkspaceTest("testFileInFolderCreation"));
suite.addTest(new ExampleWorkspaceTest("testSetContents"));
suite.addTest(new ExampleWorkspaceTest("testFileOverFolder"));
suite.addTest(new ExampleWorkspaceTest("testFolderOverFile"));
suite.addTest(new ExampleWorkspaceTest("testFolderDeletion"));
suite.addTest(new ExampleWorkspaceTest("testFileDeletion"));
suite.addTest(new ExampleWorkspaceTest("testProjectDeletion"));
return suite;
}
public void testFileCreation() throws Throwable {
IFile target = getTestProject().getFile("testFile");
target.create(null, true, getMonitor());
assertTrue(target.exists());
}
public void testFileDeletion() throws Throwable {
IFile target = getTestProject().getFile("testFileForDelete");
target.create(null, true, getMonitor());
assertTrue(target.exists());
target.delete(true, getMonitor());
assertTrue(!target.exists());
}
public void testFileInFolderCreation() throws Throwable {
IFile target = getTestProject().getFile(new Path("testFolder/testFile2"));
target.create(getRandomContents(), true, getMonitor());
assertTrue(target.exists());
}
public void testFileOverFolder() throws Throwable {
IFolder existing = getTestProject().getFolder("testFolder");
assertTrue(existing.exists());
IFile target = getWorkspace().getRoot().getFile(existing.getFullPath());
try {
target.create(null, true, getMonitor());
} catch (CoreException e) {
assertTrue(existing.exists());
return;
}
fail("Should not be able to create file over folder");
}
public void testFolderCreation() throws Throwable {
IFolder target = getTestProject().getFolder("testFolder");
target.create(true, true, getMonitor());
assertTrue(target.exists());
}
public void testFolderDeletion() throws Throwable {
IProject project = getTestProject();
IResource[] before = buildResources(project, new String[] {"c/", "c/b/", "c/x", "c/b/y", "c/b/z"});
ensureExistsInWorkspace(before, true);
//
assertExistsInWorkspace(before);
project.getFolder("c").delete(true, getMonitor());
assertDoesNotExistInWorkspace(before);
}
public void testFolderOverFile() throws Throwable {
IFile existing = getTestProject().getFile("testFile");
assertTrue(existing.exists());
IFolder target = getWorkspace().getRoot().getFolder(existing.getFullPath());
try {
target.create(true, true, getMonitor());
} catch (CoreException e) {
assertTrue(existing.exists());
return;
}
fail("Should not be able to create folder over a file");
}
public void testProjectCreation() throws Throwable {
IProject target = getTestProject();
target.create(null, getMonitor());
assertTrue(target.exists());
target.open(getMonitor());
assertTrue(target.isOpen());
}
public void testProjectDeletion() throws Throwable {
IProject target = getTestProject();
target.delete(true, getMonitor());
assertTrue("Project Deletion failed", !target.exists());
}
public void testSetContents() throws Throwable {
IFile target = getTestProject().getFile("testFile");
String testString = getRandomString();
target.setContents(getContents(testString), true, false, getMonitor());
InputStream content = null;
try {
content = target.getContents();
assertTrue("get not equal set", compareContent(content, getContents(testString)));
} finally {
content.close();
}
}
}