/** Tests creating a linked folder under a virtual folder */
  public void testCreateLinkedFolderUnderVirtualFolder() {
    // get a non-existing location
    IPath location = getRandomLocation();
    IFolder linkedFolder = existingVirtualFolderInExistingProject.getFolder(getUniqueString());

    try {
      linkedFolder.createLink(location, IResource.ALLOW_MISSING_LOCAL, getMonitor());
    } catch (CoreException e) {
      fail("1.0", e);
    }

    assertTrue("2.0", linkedFolder.exists());
    assertEquals("3.0", location, linkedFolder.getLocation());
    assertTrue("4.0", !location.toFile().exists());

    // getting children should succeed (and be empty)
    try {
      assertEquals("5.0", 0, linkedFolder.members().length);
    } catch (CoreException e) {
      fail("6.0", e);
    }

    // delete should succeed
    try {
      linkedFolder.delete(IResource.NONE, getMonitor());
    } catch (CoreException e) {
      fail("7.0", e);
    }
  }
  /** Tests creating a virtual folder under a virtual folder */
  public void testCreateVirtualFolderUnderVirtualFolder() {
    IFolder virtualFolder = existingVirtualFolderInExistingProject.getFolder(getUniqueString());
    try {
      virtualFolder.create(IResource.VIRTUAL, true, null);
    } catch (CoreException e) {
      fail("1.0", e);
    }

    assertTrue("2.0", virtualFolder.exists());
    assertTrue("3.0", virtualFolder.isVirtual());

    // delete should succeed
    try {
      virtualFolder.delete(IResource.NONE, getMonitor());
    } catch (CoreException e) {
      fail("4.0", e);
    }
  }