@Test( expected = IllegalArgumentException.class ) public void shouldNotAllowSubpathStartingAtNegativeNumber() { path.subpath(-1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldNotAllowSubpathStartingAtMoreThanOne() { root.subpath(2); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldNotAllowSubpathEndingAtMoreThanZero() { root.subpath(0, 1); }
/** * {@inheritDoc} */ public Path getCommonAncestor( Path that ) { CheckArg.isNotNull(that, "that"); if (that.isRoot()) return that; Path normalizedPath = this.getNormalizedPath(); int lastIndex = 0; Iterator<Segment> thisIter = normalizedPath.iterator(); Iterator<Segment> thatIter = that.getNormalizedPath().iterator(); while (thisIter.hasNext() && thatIter.hasNext()) { Segment thisSeg = thisIter.next(); Segment thatSeg = thatIter.next(); if (thisSeg.equals(thatSeg)) { ++lastIndex; } else { break; } } if (lastIndex == 0) return RootPath.INSTANCE; return normalizedPath.subpath(0, lastIndex); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldNotAllowSubpathStartingAtOne() { root.subpath(1); }
@Test( expected = IllegalArgumentException.class ) public void shouldFailToReturnSubpathIfStartingIndexIsNegative() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(-1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldNotAllowSubpathEndingAtMoreThanSize() { path.subpath(0, path.size() + 1); }
@Test( expected = IllegalArgumentException.class ) public void shouldFailToReturnSubpathIfStartingIndexIsNegative() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(-1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathIfEndingIndexIsSmallerThanStartingIndex() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(2, 1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathIfEndingIndexIsSmallerThanStartingIndex() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(2, 1); }
@Test public void shouldReturnRootAsSubpathIfStartingIndexAndEndingIndexAreBothZero() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); assertThat(path.subpath(0, 0), is(ROOT)); }
@Test public void shouldReturnRootAsSubpathIfStartingIndexAndEndingIndexAreBothZero() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); assertThat(path.subpath(0, 0), is(ROOT)); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathIfEndingIndexIsEqualToOrLargerThanSize() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(2, path.size() + 1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathWithoutEndingIndexIfStartingIndexIsEqualToOrLargerThanSize() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(path.size() + 1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathIfEndingIndexIsEqualToOrLargerThanSize() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(2, path.size() + 1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathWithoutEndingIndexIfStartingIndexIsEqualToOrLargerThanSize() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(path.size() + 1); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathWithEndingIndexIfStartingIndexIsEqualToOrLargerThanSize() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(path.size() + 1, path.size() + 2); }
@Test( expected = IndexOutOfBoundsException.class ) public void shouldFailToReturnSubpathWithEndingIndexIfStartingIndexIsEqualToOrLargerThanSize() { path = pathFactory.create("/mode:a/b/mode:c/../d/./mode:e/../.."); path.subpath(path.size() + 1, path.size() + 2); }