ImmutableListPathCore implements PathCore<ImmutableListPathCore> { @Override public ImmutableListPathCore getParent() { if (getNameCount() > (isAbsolute() ? 0 : 1)) { return new ImmutableListPathCore(root, path.subList(0, getNameCount() - 1)); } else { return null; } } ImmutableListPathCore(@Nullable String root, Iterable<String> path); static Parser parser(String separator); static Parser namedRootParser(String separator, NamedRootFormat format, String rootId); @Override boolean isAbsolute(); @Override ImmutableListPathCore getRoot(); @Override ImmutableListPathCore getFileName(); @Override ImmutableListPathCore getParent(); @Override int getNameCount(); @Override ImmutableListPathCore getName(int index); @Override ImmutableListPathCore subpath(int beginIndex, int endIndex); @Override boolean startsWith(ImmutableListPathCore other); @Override boolean endsWith(ImmutableListPathCore other); @Override ImmutableListPathCore normalize(); @Override ImmutableListPathCore resolve(ImmutableListPathCore other); @Override ImmutableListPathCore resolveSibling(ImmutableListPathCore other); @Override ImmutableListPathCore relativize(ImmutableListPathCore other); @Override String toPathString(String separator); @Override String toString(); @Override int compareTo(ImmutableListPathCore other); @Override boolean equals(Object obj); @Override int hashCode(); @Nullable String getRootString(); ImmutableList<String> getPathSegments();  }
@Test public void fileParentIsNull() { ImmutableListPathCore parent = core(null, "file").getParent(); assertNull("file parent is not null", parent); }
@Test public void rootFileParentIsRoot() { ImmutableListPathCore parent = core("", "file").getParent(); assertEquals("parent is not root", root, parent); }
@Test public void rootParentIsNull() { assertNull("root's parent is not null", root.getParent()); assertNull("named root's parent is not null", rootNamed.getParent()); }