Commit | Line | Data |
---|---|---|
6cac0e45 NR |
1 | package be.nikiroo.fanfix.test; |
2 | ||
3 | import java.io.File; | |
4 | import java.util.ArrayList; | |
5 | import java.util.List; | |
6 | ||
7 | import be.nikiroo.fanfix.Library; | |
8 | import be.nikiroo.fanfix.data.Chapter; | |
9 | import be.nikiroo.fanfix.data.MetaData; | |
10 | import be.nikiroo.fanfix.data.Paragraph; | |
11 | import be.nikiroo.fanfix.data.Story; | |
12 | import be.nikiroo.fanfix.output.BasicOutput.OutputType; | |
13 | import be.nikiroo.utils.IOUtils; | |
14 | import be.nikiroo.utils.test.TestCase; | |
15 | import be.nikiroo.utils.test.TestLauncher; | |
16 | ||
17 | public class LibraryTest extends TestLauncher { | |
18 | private Library lib; | |
19 | private File tmp; | |
20 | ||
21 | public LibraryTest(String[] args) { | |
22 | super("Library", args); | |
23 | ||
24 | final String luid1 = "001"; // A | |
25 | final String luid2 = "002"; // B | |
26 | final String luid3 = "003"; // B then A, then B | |
27 | final String source1 = "Source A"; | |
28 | final String source2 = "Source B"; | |
29 | final String author1 = "Unknown author"; | |
30 | final String author2 = "Another other otter author"; | |
31 | ||
32 | addSeries(new TestLauncher("Local", args) { | |
33 | { | |
34 | addTest(new TestCase("getList") { | |
35 | @Override | |
36 | public void test() throws Exception { | |
37 | // TODO: getList | |
38 | List<MetaData> metas = lib.getListBySource(null); | |
39 | assertEquals(0, metas.size()); | |
40 | } | |
41 | }); | |
42 | ||
43 | addTest(new TestCase("save") { | |
44 | @Override | |
45 | public void test() throws Exception { | |
46 | lib.save(story(luid1, "My story 1", source1, author1), | |
47 | luid1, null); | |
48 | ||
49 | // TODO: getList | |
50 | List<MetaData> metas = lib.getListBySource(null); | |
51 | assertEquals(1, metas.size()); | |
52 | } | |
53 | }); | |
54 | ||
55 | addTest(new TestCase("save more") { | |
56 | @Override | |
57 | public void test() throws Exception { | |
58 | List<MetaData> metas = null; | |
59 | ||
60 | lib.save(story(luid2, "My story 2", source2, author1), | |
61 | luid2, null); | |
62 | ||
63 | // TODO: getList | |
64 | metas = lib.getListBySource(null); | |
65 | assertEquals(2, metas.size()); | |
66 | ||
67 | lib.save(story(luid3, "My story 3", source2, author1), | |
68 | luid3, null); | |
69 | ||
70 | // TODO: getList | |
71 | metas = lib.getListBySource(null); | |
72 | assertEquals(3, metas.size()); | |
73 | } | |
74 | }); | |
75 | ||
76 | addTest(new TestCase("save override luid (change author)") { | |
77 | @Override | |
78 | public void test() throws Exception { | |
79 | // same luid as a previous one | |
80 | lib.save(story(luid3, "My story 3", source2, author2), | |
81 | luid3, null); | |
82 | ||
83 | // TODO: getList | |
84 | List<MetaData> metas = lib.getListBySource(null); | |
85 | assertEquals(3, metas.size()); | |
86 | } | |
87 | }); | |
88 | ||
89 | addTest(new TestCase("getList with results") { | |
90 | @Override | |
91 | public void test() throws Exception { | |
92 | // TODO: getList | |
93 | List<MetaData> metas = lib.getListBySource(null); | |
94 | assertEquals(3, metas.size()); | |
95 | } | |
96 | }); | |
97 | ||
98 | addTest(new TestCase("getList by source") { | |
99 | @Override | |
100 | public void test() throws Exception { | |
101 | List<MetaData> metas = null; | |
102 | ||
103 | metas = lib.getListBySource(source1); | |
104 | assertEquals(1, metas.size()); | |
105 | ||
106 | metas = lib.getListBySource(source2); | |
107 | assertEquals(2, metas.size()); | |
108 | ||
109 | metas = lib.getListBySource(null); | |
110 | assertEquals(3, metas.size()); | |
111 | } | |
112 | }); | |
113 | ||
114 | addTest(new TestCase("getList by author") { | |
115 | @Override | |
116 | public void test() throws Exception { | |
117 | List<MetaData> metas = null; | |
118 | ||
119 | metas = lib.getListByAuthor(author1); | |
120 | assertEquals(2, metas.size()); | |
121 | ||
122 | metas = lib.getListByAuthor(author2); | |
123 | assertEquals(1, metas.size()); | |
124 | ||
125 | metas = lib.getListByAuthor(null); | |
126 | assertEquals(3, metas.size()); | |
127 | } | |
128 | }); | |
129 | ||
130 | addTest(new TestCase("changeType") { | |
131 | @Override | |
132 | public void test() throws Exception { | |
133 | List<MetaData> metas = null; | |
134 | ||
135 | lib.changeType(luid3, source1); | |
136 | ||
137 | metas = lib.getListBySource(source1); | |
138 | assertEquals(2, metas.size()); | |
139 | ||
140 | metas = lib.getListBySource(source2); | |
141 | assertEquals(1, metas.size()); | |
142 | ||
143 | metas = lib.getListBySource(null); | |
144 | assertEquals(3, metas.size()); | |
145 | } | |
146 | }); | |
147 | ||
148 | addTest(new TestCase("save override luid (change source)") { | |
149 | @Override | |
150 | public void test() throws Exception { | |
151 | List<MetaData> metas = null; | |
152 | ||
153 | // same luid as a previous one | |
154 | lib.save(story(luid3, "My story 3", source2, author2), | |
155 | luid3, null); | |
156 | ||
157 | metas = lib.getListBySource(source1); | |
158 | assertEquals(1, metas.size()); | |
159 | ||
160 | metas = lib.getListBySource(source2); | |
161 | assertEquals(2, metas.size()); | |
162 | ||
163 | metas = lib.getListBySource(null); | |
164 | assertEquals(3, metas.size()); | |
165 | } | |
166 | }); | |
167 | } | |
168 | }); | |
169 | } | |
170 | ||
171 | @Override | |
172 | protected void start() throws Exception { | |
173 | tmp = File.createTempFile(".test-fanfix", ".library"); | |
174 | tmp.delete(); | |
175 | tmp.mkdir(); | |
176 | ||
177 | lib = new Library(tmp, OutputType.INFO_TEXT, OutputType.CBZ); | |
178 | } | |
179 | ||
180 | @Override | |
181 | protected void stop() throws Exception { | |
182 | IOUtils.deltree(tmp); | |
183 | } | |
184 | ||
185 | private Story story(String luid, String title, String source, String author) { | |
186 | Story story = new Story(); | |
187 | ||
188 | MetaData meta = new MetaData(); | |
189 | meta.setLuid(luid); | |
190 | meta.setTitle(title); | |
191 | meta.setSource(source); | |
192 | meta.setAuthor(author); | |
193 | story.setMeta(meta); | |
194 | ||
195 | Chapter resume = chapter(0, "Resume"); | |
196 | meta.setResume(resume); | |
197 | ||
198 | List<Chapter> chapters = new ArrayList<Chapter>(); | |
199 | chapters.add(chapter(1, "Chap 1")); | |
200 | chapters.add(chapter(2, "Chap 2")); | |
201 | story.setChapters(chapters); | |
202 | ||
203 | long words = 0; | |
204 | for (Chapter chap : story.getChapters()) { | |
205 | words += chap.getWords(); | |
206 | } | |
207 | meta.setWords(words); | |
208 | ||
209 | return story; | |
210 | } | |
211 | ||
212 | private Chapter chapter(int number, String name) { | |
213 | Chapter chapter = new Chapter(number, name); | |
214 | ||
215 | List<Paragraph> paragraphs = new ArrayList<Paragraph>(); | |
216 | paragraphs.add(new Paragraph(Paragraph.ParagraphType.NORMAL, | |
217 | "some words in this paragraph please thank you", 8)); | |
218 | ||
219 | chapter.setParagraphs(paragraphs); | |
220 | ||
221 | long words = 0; | |
222 | for (Paragraph para : chapter.getParagraphs()) { | |
223 | words += para.getWords(); | |
224 | } | |
225 | chapter.setWords(words); | |
226 | ||
227 | return chapter; | |
228 | } | |
229 | } |