public void testDeleteProjectWithVirtualFolderAndLink() { IPath folderLocation = getRandomLocation(); IFolder virtualFolder = existingProject.getFolder(getUniqueString()); IFolder linkedFolder = virtualFolder.getFolder("a_link"); try { try { folderLocation.toFile().mkdir(); virtualFolder.create(IResource.VIRTUAL, true, null); linkedFolder.createLink(folderLocation, IResource.NONE, getMonitor()); existingProject.delete(IResource.NEVER_DELETE_PROJECT_CONTENT, getMonitor()); existingProject.create(getMonitor()); } catch (CoreException e) { fail("1.0", e); } // virtual folder should not exist until the project is open assertTrue("2.0", !virtualFolder.exists()); assertTrue("3.0", !linkedFolder.exists()); try { existingProject.open(getMonitor()); } catch (CoreException e) { fail("4.0", e); } // virtual folder should now exist assertTrue("5.0", virtualFolder.exists()); assertTrue("6.0", virtualFolder.isVirtual()); // link should now exist assertTrue("7.0", linkedFolder.exists()); assertTrue("8.0", linkedFolder.isLinked()); assertEquals("9.0", folderLocation, linkedFolder.getLocation()); } finally { Workspace.clear(folderLocation.toFile()); } }
public void testDeleteProjectWithVirtualFolder() { IFolder virtualFolder = existingProject.getFolder(getUniqueString()); try { virtualFolder.create(IResource.VIRTUAL, true, null); existingProject.delete(IResource.NEVER_DELETE_PROJECT_CONTENT, getMonitor()); existingProject.create(getMonitor()); } catch (CoreException e) { fail("1.0", e); } // virtual folder should not exist until the project is open assertTrue("2.0", !virtualFolder.exists()); try { existingProject.open(getMonitor()); } catch (CoreException e) { fail("3.0", e); } // virtual folder should now exist assertTrue("4.0", virtualFolder.exists()); assertTrue("5.0", virtualFolder.isVirtual()); }
public void testCopyProjectWithVirtualFolder() { IPath fileLocation = getRandomLocation(); IPath folderLocation = getRandomLocation(); IFile linkedFile = existingVirtualFolderInExistingProject.getFile(getUniqueString()); IFolder linkedFolder = existingVirtualFolderInExistingProject.getFolder(getUniqueString()); try { try { createFileInFileSystem(fileLocation, getRandomContents()); folderLocation.toFile().mkdir(); linkedFolder.createLink(folderLocation, IResource.NONE, getMonitor()); linkedFile.createLink(fileLocation, IResource.NONE, getMonitor()); } catch (CoreException e) { fail("1.0", e); } // copy the project IProject destinationProject = getWorkspace().getRoot().getProject("CopyTargetProject"); try { existingProject.copy(destinationProject.getFullPath(), IResource.SHALLOW, getMonitor()); } catch (CoreException e) { fail("2.0", e); } IFile newFile = destinationProject.getFile(linkedFile.getProjectRelativePath()); assertTrue("3.0", newFile.isLinked()); assertEquals("3.1", linkedFile.getLocation(), newFile.getLocation()); assertTrue("3.2", newFile.getParent().isVirtual()); IFolder newFolder = destinationProject.getFolder(linkedFolder.getProjectRelativePath()); assertTrue("4.0", newFolder.isLinked()); assertEquals("4.1", linkedFolder.getLocation(), newFolder.getLocation()); assertTrue("4.2", newFolder.getParent().isVirtual()); // test project deep copy try { destinationProject.delete(IResource.NONE, getMonitor()); existingProject.copy(destinationProject.getFullPath(), IResource.NONE, getMonitor()); } catch (CoreException e) { fail("5.0", e); } assertTrue("5.1", newFile.isLinked()); assertEquals("5.2", linkedFile.getLocation(), newFile.getLocation()); assertTrue("5.3", newFile.getParent().isVirtual()); assertTrue("5.4", newFolder.isLinked()); assertEquals("5.5", linkedFolder.getLocation(), newFolder.getLocation()); assertTrue("5.6", newFolder.getParent().isVirtual()); try { destinationProject.delete(IResource.NONE, getMonitor()); } catch (CoreException e) { fail("6.0", e); } } finally { Workspace.clear(fileLocation.toFile()); Workspace.clear(folderLocation.toFile()); } }