ImmutableListPathCore implements PathCore<ImmutableListPathCore> { @Override public ImmutableListPathCore getName(int index) { checkElementIndex(index, getNameCount(), "index"); return new ImmutableListPathCore(null, ImmutableList.of(path.get(index))); } 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 invalidNameIndexThrowsException() { try { absolute.getName(10); fail("name index > length allowed"); } catch (IndexOutOfBoundsException | IllegalArgumentException expected) { } try { absolute.getName(-1); fail("name index < 0 allowed"); } catch (IndexOutOfBoundsException | IllegalArgumentException expected) { } }
@Test public void getName() { ImmutableListPathCore name = absolute.getName(1); assertFalse("name is absolute", name.isAbsolute()); assertThat(name, hasPath("to")); }