Merge branch 'subtree'
[fanfix.git] / src / be / nikiroo / fanfix / test / LibraryTest.java
index 43ca0879d60ed61fe1d7fc072820d03022bfd6ba..da44438d02027f0b30f219d428bd1c466d21ea54 100644 (file)
@@ -2,6 +2,8 @@ package be.nikiroo.fanfix.test;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import be.nikiroo.fanfix.data.Chapter;
@@ -15,7 +17,7 @@ import be.nikiroo.utils.IOUtils;
 import be.nikiroo.utils.test.TestCase;
 import be.nikiroo.utils.test.TestLauncher;
 
-public class LibraryTest extends TestLauncher {
+class LibraryTest extends TestLauncher {
        private BasicLibrary lib;
        private File tmp;
 
@@ -25,29 +27,37 @@ public class LibraryTest extends TestLauncher {
                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 {
-                                               List<MetaData> metas = lib.getList();
-                                               assertEquals(0, metas.size());
+                                               List<MetaData> metas = lib.getList().getMetas();
+                                               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);
 
-                                               List<MetaData> metas = lib.getList();
-                                               assertEquals(1, metas.size());
+                                               List<MetaData> metas = lib.getList().getMetas();
+                                               assertEquals(errMess, Arrays.asList(name1),
+                                                               titlesAsList(metas));
                                        }
                                });
 
@@ -56,17 +66,20 @@ public class LibraryTest extends TestLauncher {
                                        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);
 
-                                               metas = lib.getList();
-                                               assertEquals(2, metas.size());
+                                               metas = lib.getList().getMetas();
+                                               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);
 
-                                               metas = lib.getList();
-                                               assertEquals(3, metas.size());
+                                               metas = lib.getList().getMetas();
+                                               assertEquals(errMess,
+                                                               Arrays.asList(name1, name2, name3),
+                                                               titlesAsList(metas));
                                        }
                                });
 
@@ -74,19 +87,20 @@ public class LibraryTest extends TestLauncher {
                                        @Override
                                        public void test() throws Exception {
                                                // same luid as a previous one
-                                               lib.save(
-                                                               story(luid3, "My story 3 [edited]", source2,
-                                                                               author2), luid3, null);
+                                               lib.save(story(luid3, name3ex, source2, author2),
+                                                               luid3, null);
 
-                                               List<MetaData> metas = lib.getList();
-                                               assertEquals(3, metas.size());
+                                               List<MetaData> metas = lib.getList().getMetas();
+                                               assertEquals(errMess,
+                                                               Arrays.asList(name1, name2, name3ex),
+                                                               titlesAsList(metas));
                                        }
                                });
 
                                addTest(new TestCase("getList with results") {
                                        @Override
                                        public void test() throws Exception {
-                                               List<MetaData> metas = lib.getList();
+                                               List<MetaData> metas = lib.getList().getMetas();
                                                assertEquals(3, metas.size());
                                        }
                                });
@@ -96,13 +110,13 @@ public class LibraryTest extends TestLauncher {
                                        public void test() throws Exception {
                                                List<MetaData> metas = null;
 
-                                               metas = lib.getListBySource(source1);
+                                               metas = lib.getList().filter(source1, null, null);
                                                assertEquals(1, metas.size());
 
-                                               metas = lib.getListBySource(source2);
+                                               metas = lib.getList().filter(source2, null, null);
                                                assertEquals(2, metas.size());
 
-                                               metas = lib.getListBySource(null);
+                                               metas = lib.getList().filter((String)null, null, null);
                                                assertEquals(3, metas.size());
                                        }
                                });
@@ -112,13 +126,13 @@ public class LibraryTest extends TestLauncher {
                                        public void test() throws Exception {
                                                List<MetaData> metas = null;
 
-                                               metas = lib.getListByAuthor(author1);
+                                               metas = lib.getList().filter(null, author1, null);
                                                assertEquals(2, metas.size());
 
-                                               metas = lib.getListByAuthor(author2);
+                                               metas = lib.getList().filter(null, author2, null);
                                                assertEquals(1, metas.size());
 
-                                               metas = lib.getListByAuthor(null);
+                                               metas = lib.getList().filter((String)null, null, null);
                                                assertEquals(3, metas.size());
                                        }
                                });
@@ -130,13 +144,13 @@ public class LibraryTest extends TestLauncher {
 
                                                lib.changeSource(luid3, source1, null);
 
-                                               metas = lib.getListBySource(source1);
+                                               metas = lib.getList().filter(source1, null, null);
                                                assertEquals(2, metas.size());
 
-                                               metas = lib.getListBySource(source2);
+                                               metas = lib.getList().filter(source2, null, null);
                                                assertEquals(1, metas.size());
 
-                                               metas = lib.getListBySource(null);
+                                               metas = lib.getList().filter((String)null, null, null);
                                                assertEquals(3, metas.size());
                                        }
                                });
@@ -150,13 +164,13 @@ public class LibraryTest extends TestLauncher {
                                                lib.save(story(luid3, "My story 3", source2, author2),
                                                                luid3, null);
 
-                                               metas = lib.getListBySource(source1);
+                                               metas = lib.getList().filter(source1, null, null);
                                                assertEquals(1, metas.size());
 
-                                               metas = lib.getListBySource(source2);
+                                               metas = lib.getList().filter(source2, null, null);
                                                assertEquals(2, metas.size());
 
-                                               metas = lib.getListBySource(null);
+                                               metas = lib.getList().filter((String)null, null, null);
                                                assertEquals(3, metas.size());
                                        }
                                });
@@ -178,6 +192,25 @@ public class LibraryTest extends TestLauncher {
                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();