PageRange { public boolean isPageInRange(int pageNumber) { for (IPageRangePart sequence : sequences) { if (sequence.isPageInRange(pageNumber)) { return true; } } return false; } PageRange();  PageRange(String pageRange); PageRange addPageRangePart(IPageRangePart part); PageRange addPageSequence(int startPageNumber, int endPageNumber); PageRange addSinglePage(int pageNumber); List<Integer> getQualifyingPageNums(int nbPages); boolean isPageInRange(int pageNumber); @Override boolean equals(Object obj); @Override int hashCode();  }
@Test public void isPageInRangeTrueTest() { PageRange range = new PageRange("3-8"); Assert.assertTrue(range.isPageInRange(6)); }
@Test public void isPageInRangeFalseTest() { PageRange range = new PageRange("3-8"); Assert.assertFalse(range.isPageInRange(2)); }
@Test public void isRangePartSingleInRangeTrueTest() { PageRange.PageRangePartSingle pageRangePartSingle = new PageRange.PageRangePartSingle(10); Assert.assertTrue(pageRangePartSingle.isPageInRange(10)); }
@Test public void isRangePartSingleInRangeFalseTest() { PageRange.PageRangePartSingle pageRangePartSingle = new PageRange.PageRangePartSingle(10); Assert.assertFalse(pageRangePartSingle.isPageInRange(1)); }
@Test public void isRangePartAfterInRangeTrueTest() { PageRange.PageRangePartAfter pageRangePartAfter = new PageRange.PageRangePartAfter(10); Assert.assertTrue(pageRangePartAfter.isPageInRange(11)); }
@Test public void isRangePartAfterInRangeFalseTest() { PageRange.PageRangePartAfter pageRangePartAfter = new PageRange.PageRangePartAfter(10); Assert.assertFalse(pageRangePartAfter.isPageInRange(1)); }
@Test public void isRangePartOddEvenInRangeTrueTest() { Assert.assertTrue(PageRange.PageRangePartOddEven.ODD.isPageInRange(11)); Assert.assertTrue(PageRange.PageRangePartOddEven.EVEN.isPageInRange(10)); }
@Test public void isRangePartOddEvenInRangeFalseTest() { Assert.assertFalse(PageRange.PageRangePartOddEven.ODD.isPageInRange(10)); Assert.assertFalse(PageRange.PageRangePartOddEven.EVEN.isPageInRange(11)); }
@Test public void isRangePartAndInRangeTrueTest() { PageRange.IPageRangePart odd = PageRange.PageRangePartOddEven.ODD; PageRange.IPageRangePart seq = new PageRange.PageRangePartSequence(2, 14); PageRange.PageRangePartAnd pageRangePartAnd = new PageRange.PageRangePartAnd(odd, seq); Assert.assertTrue(pageRangePartAnd.isPageInRange(5)); }
@Test public void isRangePartAndInRangeFalseTest() { PageRange.IPageRangePart odd = PageRange.PageRangePartOddEven.ODD; PageRange.IPageRangePart seq = new PageRange.PageRangePartSequence(2, 14); PageRange.PageRangePartAnd pageRangePartAnd = new PageRange.PageRangePartAnd(odd, seq); Assert.assertFalse(pageRangePartAnd.isPageInRange(1)); }