@Test public void testCanGetAfterMissingRepeat() throws InvalidParameterException { SelectorPath minimal = SelectorPath.parse("Document > Paragraph"); RepeatSearch repeatUnit = new RepeatSearch(ImmutableList.of(minimal), minimal); recordStructureManager.repeatRecord(Optional.empty(), repeatUnit, true); Optional<Structure> adjusted = recordStructureManager.select("Document > Paragraph:nth-of-type(2)"); assertTrue(adjusted.isPresent()); assertEquals(paragraph1, adjusted.get()); } }
@Test public void testCanRepeatFromStartOfDocument() throws InvalidParameterException { SelectorPath maximal = SelectorPath.parse("Document > Heading"); RepeatSearch repeatUnit = new RepeatSearch(ImmutableList.of(maximal), maximal); Optional<Structure> repeat1 = recordStructureManager.repeatRecord(Optional.empty(), repeatUnit, true); assertTrue(repeat1.isPresent()); assertEquals(heading1, repeat1.get()); Optional<Structure> repeat2 = recordStructureManager.repeatRecord(repeat1, repeatUnit, false); assertFalse(repeat2.isPresent()); }
@Test public void testCanNotRepeatMissingStructure() throws InvalidParameterException { SelectorPath minimal = SelectorPath.parse("Table"); RepeatSearch repeatSearch = new RepeatSearch(ImmutableList.of(minimal), minimal); Optional<Structure> structure = recordStructureManager.select("Document > Heading"); assertFalse(recordStructureManager.repeatRecord(structure, repeatSearch, true).isPresent()); }
@Test public void testCanRepeatParagraph() throws InvalidParameterException { SelectorPath minimal = SelectorPath.parse("Document > Paragraph:nth-of-type(1)"); RepeatSearch repeatUnit = new RepeatSearch(ImmutableList.of(minimal), minimal); Optional<Structure> structure = recordStructureManager.select("Document > Heading"); Optional<Structure> repeat1 = recordStructureManager.repeatRecord(structure, repeatUnit, true); assertTrue(repeat1.isPresent()); assertEquals(paragraph1, repeat1.get()); Optional<Structure> repeat2 = recordStructureManager.repeatRecord(repeat1, repeatUnit, false); assertTrue(repeat2.isPresent()); assertEquals(paragraph2, repeat2.get()); Optional<Structure> repeat3 = recordStructureManager.repeatRecord(repeat2, repeatUnit, false); assertTrue(repeat3.isPresent()); assertEquals(paragraph3, repeat3.get()); Optional<Structure> repeat4 = recordStructureManager.repeatRecord(repeat3, repeatUnit, false); assertTrue(repeat4.isPresent()); assertEquals(paragraph4, repeat4.get()); Optional<Structure> repeat5 = recordStructureManager.repeatRecord(repeat4, repeatUnit, false); assertFalse(repeat5.isPresent()); }
@Test public void testCanGetAfterRepeatParagraph() throws InvalidParameterException { SelectorPath minimal = SelectorPath.parse("Document > Paragraph:nth-of-type(1)"); RepeatSearch repeatUnit = new RepeatSearch(ImmutableList.of(minimal), minimal); Optional<Structure> structure = recordStructureManager.select("Document > Heading"); Optional<Structure> repeat1 = recordStructureManager.repeatRecord(structure, repeatUnit, true); Optional<Structure> repeat2 = recordStructureManager.repeatRecord(repeat1, repeatUnit, false); Optional<Structure> repeat3 = recordStructureManager.repeatRecord(repeat2, repeatUnit, false); recordStructureManager.repeatRecord(repeat3, repeatUnit, false); Optional<Structure> adjusted = recordStructureManager.select("Document > Paragraph:nth-of-type(2)"); assertTrue(adjusted.isPresent()); assertEquals(paragraph5, adjusted.get()); }