### Question:
SiteMapExtractorBase implements SiteMapExtractor { @Override public List<SiteMapEntry> extract(final Resource root) { return extract(new Page(root)); }  @Override final boolean appliesTo(final Resource root); @Override List<SiteMapEntry> extract(final Resource root); @Override String buildSiteMapUrl(final Resource siteMapRoot, final int index); @Override int getIndex(final SlingHttpServletRequest request);  }### Answer:
@Test public void extract_notAPage() { final List<SiteMapEntry> entries = model.extract(contentRoot); assertEquals(2, entries.size()); }
@Test public void extract_noRecognizer() { when(config.getPageRecognizer()).thenReturn(null); final List<SiteMapEntry> entries = model.extract(resource); assertEquals(1, entries.size()); final SiteMapEntry entry = entries.get(0); assertEquals(resource.getPath(), entry.getProperty(PATH, String.class)); assertEquals(resource.getName(), entry.getProperty(NAME, String.class)); assertFalse(entry.getProperty(CONTENT, Boolean.class)); }
@Test public void extract() { final List<SiteMapEntry> entries = model.extract(parent); assertEquals(2, entries.size()); final SiteMapEntry entry = entries.get(0); assertTrue(StringUtils.startsWith(entry.getUrl(), DOMAIN)); }