Clover Coverage Report
Coverage timestamp: Fri May 24 2013 13:47:27 UTC
91   324   20   9.1
20   175   0.22   10
10     2  
1    
 
  LoadRequiredModulesTest       Line # 27 91 20 83.5% 0.8347107
 
  (10)
 
1    /* This file is part of the project "Hilbert II" - http://www.qedeq.org
2    *
3    * Copyright 2000-2013, Michael Meyling <mime@qedeq.org>.
4    *
5    * "Hilbert II" is free software; you can redistribute
6    * it and/or modify it under the terms of the GNU General Public
7    * License as published by the Free Software Foundation; either
8    * version 2 of the License, or (at your option) any later version.
9    *
10    * This program is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13    * GNU General Public License for more details.
14    */
15    package org.qedeq.kernel.bo.service.control;
16   
17    import org.qedeq.kernel.bo.test.QedeqBoTestCase;
18    import org.qedeq.kernel.se.common.DefaultModuleAddress;
19    import org.qedeq.kernel.se.common.ModuleAddress;
20    import org.qedeq.kernel.se.common.SourceFileExceptionList;
21   
22    /**
23    * For testing of loading required QEDEQ modules.
24    *
25    * @author Michael Meyling
26    */
 
27    public class LoadRequiredModulesTest extends QedeqBoTestCase {
28   
29    /**
30    * Load following dependencies:
31    * <pre>
32    * 011 -> 012
33    * 011 -> 013 -> 012
34    * </pre>
35    *
36    * @throws Exception
37    */
 
38  1 toggle public void testLoadRequiredModules_01() throws Exception {
39  1 final ModuleAddress address = new DefaultModuleAddress(getFile("loadRequired/LRM011.xml"));
40  1 if (!getServices().loadRequiredModules(address)) {
41  0 fail("loading should be successful");
42    }
43    }
44   
45    /**
46    * Load following dependencies:
47    * <pre>
48    * 021 -> 021
49    * </pre>
50    *
51    * @throws Exception
52    */
 
53  1 toggle public void testLoadRequiredModules_02() throws Exception {
54  1 final ModuleAddress address = new DefaultModuleAddress(
55    getFile("loadRequired/LRM021.xml"));
56  1 if (getServices().loadRequiredModules(address)) {
57  0 fail("021 -> 021 cycle");
58    } else {
59  1 SourceFileExceptionList e = getServices().getQedeqBo(address).getErrors();
60  1 assertEquals(1, e.size());
61  1 assertEquals(31, e.get(0).getSourceArea().getStartPosition().getRow());
62  1 assertEquals(15, e.get(0).getSourceArea().getStartPosition().getColumn());
63  1 assertEquals(90722, e.get(0).getErrorCode());
64  1 assertTrue(e.get(0).getDescription().endsWith(
65    "Recursive import of modules is forbidden, label: \"LRM021\""));
66    }
67    }
68   
69    /**
70    * Load following dependencies:
71    * <pre>
72    * 031 -> 032 -> 031
73    * </pre>
74    *
75    * @throws Exception
76    */
 
77  1 toggle public void testLoadRequiredModules_03() throws Exception {
78  1 final ModuleAddress address = new DefaultModuleAddress(
79    getFile("loadRequired/LRM031.xml"));
80  1 getServices().loadRequiredModules(address);
81  1 if (getServices().loadRequiredModules(address)) {
82  0 fail("031 -> 032 -> 031 cycle");
83    } else {
84  1 SourceFileExceptionList e = getServices().getQedeqBo(address).getErrors();
85  1 assertEquals(1, e.size());
86    // e.printStackTrace();
87  1 assertEquals(31, e.get(0).getSourceArea().getStartPosition().getRow());
88  1 assertEquals(15, e.get(0).getSourceArea().getStartPosition().getColumn());
89  1 assertEquals(90723, e.get(0).getErrorCode());
90  1 assertTrue(e.get(0).getDescription().endsWith(
91    "Import of module failed, label: \"LRM032\", Recursive import of modules is"
92    + " forbidden, label: \"LRM031\""));
93    }
94    }
95   
96    /**
97    * Load following dependencies:
98    * <pre>
99    * 041 -> 042 -> 043
100    * 041 -> 043 -> 044
101    * 041 -> 044 -> 042
102    * </pre>
103    *
104    * @throws Exception
105    */
 
106  1 toggle public void testLoadRequiredModules_04() throws Exception {
107  1 final ModuleAddress address = new DefaultModuleAddress(
108    getFile("loadRequired/LRM041.xml"));
109  1 getServices().loadRequiredModules(address);
110  1 if (getServices().loadRequiredModules(address)) {
111  0 fail("041 -> 042 -> 043 -> 044 -> 042 cycle\n"
112    + "041 -> 043 -> 044 -> 042 -> 043 cycle\n"
113    + "041 -> 044 -> 042 -> 043 -> 044 cycle");
114    } else {
115  1 SourceFileExceptionList e = getServices().getQedeqBo(address).getErrors();
116  1 assertEquals(31, e.get(0).getSourceArea().getStartPosition().getRow());
117  1 assertEquals(15, e.get(0).getSourceArea().getStartPosition().getColumn());
118  1 assertEquals(90723, e.get(0).getErrorCode());
119  1 assertTrue(e.get(0).getDescription().endsWith(
120    "Import of module failed, label: \"LRM042\", Import of module failed, label: "
121    + "\"LRM043\", Import of module failed, label: \"LRM044\", Recursive import of "
122    + "modules is forbidden, label: \"LRM042\""));
123  1 assertEquals(3, e.size());
124  1 assertEquals(38, e.get(1).getSourceArea().getStartPosition().getRow());
125  1 assertEquals(15, e.get(1).getSourceArea().getStartPosition().getColumn());
126  1 assertEquals(90723, e.get(1).getErrorCode());
127  1 assertTrue(e.get(1).getDescription().endsWith(
128    "Import of module failed, label: \"LRM043\", Import of module failed, label: "
129    + "\"LRM044\", Import of module failed, label: \"LRM042\", Recursive import of "
130    + "modules is forbidden, label: \"LRM043\""));
131  1 assertEquals(45, e.get(2).getSourceArea().getStartPosition().getRow());
132  1 assertEquals(15, e.get(2).getSourceArea().getStartPosition().getColumn());
133  1 assertEquals(90723, e.get(2).getErrorCode());
134  1 assertTrue(e.get(2).getDescription().endsWith(
135    "Import of module failed, label: \"LRM044\", Import of module failed, label: "
136    + "\"LRM042\", Import of module failed, label: \"LRM043\", Recursive import of "
137    + "modules is forbidden, label: \"LRM044\""));
138    }
139    }
140   
141    /**
142    * Load following dependencies:
143    * <pre>
144    * 051 -> 052 -> 053 -> 056
145    * 051 -> 052 -> 054 -> 056
146    * 051 -> 052 -> 055 -> 053 -> 056
147    * 051 -> 052 -> 055 -> 057
148    * 051 -> 053 -> 056
149    * 051 -> 054 -> 056
150    * 051 -> 055 -> 057
151    * </pre>
152    *
153    * @throws Exception
154    */
 
155  1 toggle public void testLoadRequiredModules_05() throws Exception {
156  1 final ModuleAddress address = new DefaultModuleAddress(
157    getFile("loadRequired/LRM051.xml"));
158  1 if (!getServices().loadRequiredModules(address)) {
159  0 fail("loading should be successful");
160    }
161    }
162   
163    /**
164    * Load following dependencies:
165    * <pre>
166    * 061 -> 062 -> 063 -> 066 -> 067
167    * 061 -> 062 -> 064 -> 066 -> 067
168    * 061 -> 062 -> 065 -> 063 -> 066 -> 067
169    * 061 -> 062 -> 065 -> 067
170    * 061 -> 063 -> 066 -> 067
171    * 061 -> 064 -> 066 -> 067
172    * 061 -> 065 -> 067
173    * </pre>
174    *
175    * @throws Exception
176    */
 
177  1 toggle public void testLoadRequiredModules_06() throws Exception {
178  1 final ModuleAddress address = new DefaultModuleAddress(getFile("loadRequired/LRM061.xml"));
179  1 if (!getServices().loadRequiredModules(address)) {
180  0 fail("loading should be successful");
181    }
182    }
183   
184    /**
185    * Load following dependencies:
186    * <pre>
187    * 071 -> 072 -> 073 -> 076 -> 077
188    * 071 -> 072 -> 073 -> 076 -> 071 c
189    * 071 -> 072 -> 073 -> 075 -> 073 c
190    * 071 -> 072 -> 073 -> 075 -> 077
191    * 071 -> 072 -> 074 -> 076 -> 077
192    * 071 -> 072 -> 074 -> 076 -> 071 c
193    * 071 -> 072 -> 075 -> 073 -> 076 -> 077
194    * 071 -> 072 -> 075 -> 073 -> 075 c
195    * 071 -> 072 -> 075 -> 077
196    * 071 -> 073 -> 076 -> 077
197    * 071 -> 073 -> 076 -> 071 c
198    * 071 -> 073 -> 075 -> 073 c
199    * 071 -> 074 -> 076 -> 077
200    * 071 -> 074 -> 076 -> 071 c
201    * 071 -> 075 -> 073 -> 076 -> 077
202    * 071 -> 075 -> 073 -> 076 -> 071 c
203    * 071 -> 075 -> 073 -> 075 - >073 c
204    * </pre>
205    *
206    * @throws Exception
207    */
 
208  1 toggle public void testLoadRequiredModules_07() throws Exception {
209  1 final ModuleAddress address = new DefaultModuleAddress(
210    getFile("loadRequired/LRM071.xml"));
211  1 if (getServices().loadRequiredModules(address)) {
212  0 fail("see test method description");
213    } else {
214  1 SourceFileExceptionList e = getServices().getQedeqBo(address).getErrors();
215    // e.printStackTrace(System.out);
216  1 assertEquals(31, e.get(0).getSourceArea().getStartPosition().getRow());
217  1 assertEquals(15, e.get(0).getSourceArea().getStartPosition().getColumn());
218  1 assertEquals(90723, e.get(0).getErrorCode());
219  1 assertTrue(e.get(0).getDescription().endsWith(
220    "Import of module failed, label: \"LRM072\", Import of module failed, label: "
221    + "\"LRM073\", Import of module failed, label: \"LRM076\", Recursive import of "
222    + "modules is forbidden, label: \"LRM071\""));
223  1 assertEquals(4, e.size());
224  1 assertEquals(38, e.get(1).getSourceArea().getStartPosition().getRow());
225  1 assertEquals(15, e.get(1).getSourceArea().getStartPosition().getColumn());
226  1 assertEquals(90723, e.get(1).getErrorCode());
227  1 assertTrue(e.get(1).getDescription().endsWith(
228    "Import of module failed, label: \"LRM073\", Import of module failed, label: "
229    + "\"LRM076\", Recursive import of "
230    + "modules is forbidden, label: \"LRM071\""));
231  1 assertEquals(45, e.get(2).getSourceArea().getStartPosition().getRow());
232  1 assertEquals(15, e.get(2).getSourceArea().getStartPosition().getColumn());
233  1 assertEquals(90723, e.get(2).getErrorCode());
234  1 assertTrue(e.get(2).getDescription().endsWith(
235    "Import of module failed, label: \"LRM074\", Import of module failed, label: "
236    + "\"LRM076\", Recursive import of "
237    + "modules is forbidden, label: \"LRM071\""));
238  1 assertEquals(52, e.get(3).getSourceArea().getStartPosition().getRow());
239  1 assertEquals(15, e.get(3).getSourceArea().getStartPosition().getColumn());
240  1 assertEquals(90723, e.get(3).getErrorCode());
241  1 assertTrue(e.get(3).getDescription().endsWith(
242    "Import of module failed, label: \"LRM075\", Import of module failed, label: "
243    + "\"LRM073\", Import of module failed, label: \"LRM076\", Recursive import of "
244    + "modules is forbidden, label: \"LRM071\""));
245    }
246    }
247   
248    /**
249    * Load following dependencies:
250    * <pre>
251    * 081 -> 082 -> 083 -> 084 -> 085 -> 086 -> 087 -> 089
252    * </pre>
253    *
254    * @throws Exception
255    */
 
256  1 toggle public void testLoadRequiredModules_08() throws Exception {
257  1 final ModuleAddress address = new DefaultModuleAddress(getFile("loadRequired/LRM081.xml"));
258  1 if (!getServices().loadRequiredModules(address)) {
259  0 fail("loading should be successful");
260    }
261  1 assertEquals(0, getServices().getQedeqBo(address).getErrors().size());
262  1 assertTrue(!getServices().getQedeqBo(address).hasBasicFailures());
263    }
264   
265    /**
266    * Load following dependencies:
267    * <pre>
268    * 091 -> 092 -> 093 -> 094 -> 095 -> 096 -> 097 -> 099 -> 091
269    * </pre>
270    *
271    * @throws Exception
272    */
 
273  1 toggle public void testLoadRequiredModules_09() throws Exception {
274  1 final ModuleAddress address = new DefaultModuleAddress(
275    getFile("loadRequired/LRM091.xml"));
276  1 if (getServices().loadRequiredModules(address)) {
277  0 fail("091 -> 092 -> 093 -> 094 -> 095 -> 096 -> 097 -> 098 -> 099 -> 091 cycle\n");
278    } else {
279  1 SourceFileExceptionList e = getServices().getQedeqBo(address).getErrors();
280  1 assertEquals(31, e.get(0).getSourceArea().getStartPosition().getRow());
281  1 assertEquals(15, e.get(0).getSourceArea().getStartPosition().getColumn());
282  1 assertEquals(90723, e.get(0).getErrorCode());
283  1 assertTrue(e.get(0).getDescription().endsWith(
284    "Import of module failed, label: \"LRM092\", Import of module failed, label: "
285    + "\"LRM093\", Import of module failed, label: \"LRM094\", Import of module "
286    + "failed, label: \"LRM095\", Import of module failed, label: \"LRM096\", Import "
287    + "of module failed, label: \"LRM097\", Import of module failed, label: \"LRM098\", "
288    + "Import of module failed, label: \"LRM099\", Recursive import of modules is "
289    + "forbidden, label: \"LRM091\""));
290  1 assertEquals(1, e.size());
291    }
292    }
293   
294    /**
295    * Load following dependencies:
296    * <pre>
297    * 101 -> 102
298    * 101 -> notThere
299    * 101 -> 103
300    * 101 -> alsoNotThere
301    * 101 -> 104
302    * </pre>
303    *
304    * @throws Exception
305    */
 
306  1 toggle public void testLoadRequiredModules_10() throws Exception {
307  1 final ModuleAddress address = new DefaultModuleAddress(
308    getFile("loadRequired/LRM101.xml"));
309  1 if (getServices().loadRequiredModules(address)) {
310  0 fail("two imports don't exist: \"notThere\" and \"alsoNotThere\"\n");
311    } else {
312  1 SourceFileExceptionList e = getServices().getQedeqBo(address).getErrors();
313  1 assertEquals(38, e.get(0).getSourceArea().getStartPosition().getRow());
314  1 assertEquals(15, e.get(0).getSourceArea().getStartPosition().getColumn());
315  1 assertEquals(90710, e.get(0).getErrorCode());
316  1 assertTrue(0 <= e.get(0).getDescription().indexOf(
317    "import of module with label \"notThere\" failed: Loading module from local file "
318    + "failed.; file not readable: "));
319  1 assertEquals(2, e.size());
320  1 assertEquals(90710, e.get(1).getErrorCode());
321    }
322    }
323   
324    }