import java.io.File;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
-import be.nikiroo.fanfix.Library;
import be.nikiroo.fanfix.data.Chapter;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Story;
+import be.nikiroo.fanfix.library.BasicLibrary;
+import be.nikiroo.fanfix.library.LocalLibrary;
import be.nikiroo.fanfix.output.BasicOutput.OutputType;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.test.TestCase;
import be.nikiroo.utils.test.TestLauncher;
-public class LibraryTest extends TestLauncher {
- private Library lib;
+class LibraryTest extends TestLauncher {
+ private BasicLibrary lib;
private File tmp;
public LibraryTest(String[] args) {
final String luid1 = "001"; // A
final String luid2 = "002"; // B
final String luid3 = "003"; // B then A, then B
+ final String name1 = "My story 1";
+ final String name2 = "My story 2";
+ final String name3 = "My story 3";
+ final String name3ex = "My story 3 [edited]";
final String source1 = "Source A";
final String source2 = "Source B";
final String author1 = "Unknown author";
final String author2 = "Another other otter author";
+ final String errMess = "The resulting stories in the list are not what we expected";
+
addSeries(new TestLauncher("Local", args) {
{
addTest(new TestCase("getList") {
@Override
public void test() throws Exception {
- // TODO: getList
- List<MetaData> metas = lib.getListBySource(null);
- assertEquals(0, metas.size());
+ List<MetaData> metas = lib.getList();
+ assertEquals(errMess, Arrays.asList(),
+ titlesAsList(metas));
}
});
addTest(new TestCase("save") {
@Override
public void test() throws Exception {
- lib.save(story(luid1, "My story 1", source1, author1),
- luid1, null);
+ lib.save(story(luid1, name1, source1, author1), luid1,
+ null);
- // TODO: getList
- List<MetaData> metas = lib.getListBySource(null);
- assertEquals(1, metas.size());
+ List<MetaData> metas = lib.getList();
+ assertEquals(errMess, Arrays.asList(name1),
+ titlesAsList(metas));
}
});
public void test() throws Exception {
List<MetaData> metas = null;
- lib.save(story(luid2, "My story 2", source2, author1),
- luid2, null);
+ lib.save(story(luid2, name2, source2, author1), luid2,
+ null);
- // TODO: getList
- metas = lib.getListBySource(null);
- assertEquals(2, metas.size());
+ metas = lib.getList();
+ assertEquals(errMess, Arrays.asList(name1, name2),
+ titlesAsList(metas));
- lib.save(story(luid3, "My story 3", source2, author1),
- luid3, null);
+ lib.save(story(luid3, name3, source2, author1), luid3,
+ null);
- // TODO: getList
- metas = lib.getListBySource(null);
- assertEquals(3, metas.size());
+ metas = lib.getList();
+ assertEquals(errMess,
+ Arrays.asList(name1, name2, name3),
+ titlesAsList(metas));
}
});
@Override
public void test() throws Exception {
// same luid as a previous one
- lib.save(story(luid3, "My story 3", source2, author2),
+ lib.save(story(luid3, name3ex, source2, author2),
luid3, null);
- // TODO: getList
- List<MetaData> metas = lib.getListBySource(null);
- assertEquals(3, metas.size());
+ List<MetaData> metas = lib.getList();
+ assertEquals(errMess,
+ Arrays.asList(name1, name2, name3ex),
+ titlesAsList(metas));
}
});
addTest(new TestCase("getList with results") {
@Override
public void test() throws Exception {
- // TODO: getList
- List<MetaData> metas = lib.getListBySource(null);
+ List<MetaData> metas = lib.getList();
assertEquals(3, metas.size());
}
});
public void test() throws Exception {
List<MetaData> metas = null;
- lib.changeType(luid3, source1);
+ lib.changeSource(luid3, source1, null);
metas = lib.getListBySource(source1);
assertEquals(2, metas.size());
tmp.delete();
tmp.mkdir();
- lib = new Library(tmp, OutputType.INFO_TEXT, OutputType.CBZ);
+ lib = new LocalLibrary(tmp, OutputType.INFO_TEXT, OutputType.CBZ);
}
@Override
IOUtils.deltree(tmp);
}
+ /**
+ * Return the (sorted) list of titles present in this list of
+ * {@link MetaData}s.
+ *
+ * @param metas
+ * the meta
+ *
+ * @return the sorted list
+ */
+ private List<String> titlesAsList(List<MetaData> metas) {
+ List<String> list = new ArrayList<String>();
+ for (MetaData meta : metas) {
+ list.add(meta.getTitle());
+ }
+
+ Collections.sort(list);
+ return list;
+ }
+
private Story story(String luid, String title, String source, String author) {
Story story = new Story();