@Test
public void testZipReaderWithIntroFileAndArticleFiles() throws Exception {

	Mockito.when(
		_zipReader.getEntries()
	).thenReturn(
		Arrays.asList("/intro.md", "/x/a.md", "/y/z/b.md", "/y/z/c.md")
	);
	KBArchive kbArchive = _kbArchiveFactory.createKBArchive(
		1234L, _zipReader);
	Collection<KBArchive.Folder> folders = kbArchive.getFolders();
	Assert.assertEquals(folders.toString(), 3, folders.size());
	Iterator<KBArchive.Folder> folderIterator = folders.iterator();
	KBArchive.Folder folder0 = folderIterator.next();
	Assert.assertEquals(StringPool.SLASH, folder0.getName());
	KBArchive.File introFile0 = folder0.getIntroFile();
	Assert.assertEquals("/intro.md", introFile0.getName());
	Assert.assertNull(folder0.getParentFolderIntroFile());
	Collection<KBArchive.File> files0 = folder0.getFiles();
	Assert.assertTrue(files0.isEmpty());
	KBArchive.Folder folder1 = folderIterator.next();
	Assert.assertEquals("/x", folder1.getName());
	Assert.assertNull(folder1.getIntroFile());
	Assert.assertNotNull(folder1.getParentFolderIntroFile());
	Collection<KBArchive.File> files1 = folder1.getFiles();
	Assert.assertEquals(files1.toString(), 1, files1.size());
	KBArchive.Folder folder2 = folderIterator.next();
	Assert.assertEquals("/y/z", folder2.getName());
	Assert.assertNull(folder2.getIntroFile());
	Assert.assertNull(folder2.getParentFolderIntroFile());
	Collection<KBArchive.File> files2 = folder2.getFiles();
	Assert.assertEquals(files2.toString(), 2, files2.size());
}