Clover Coverage Report
Coverage timestamp: Fri May 24 2013 13:47:27 UTC
422   655   52   8.12
0   566   0.12   52
52     1  
1    
 
  AbstractOutputTest       Line # 26 422 52 99.6% 0.9957806
 
  (47)
 
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   
16    package org.qedeq.base.io;
17   
18    import org.qedeq.base.test.QedeqTestCase;
19    import org.qedeq.base.utility.StringUtility;
20   
21    /**
22    * Test {@link StringOutput}.
23    *
24    * @author Michael Meyling
25    */
 
26    public class AbstractOutputTest extends QedeqTestCase {
27   
28    private static final String XML_DATA =
29    /* 1 */ "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
30    /* 2 */ + "<QEDEQ \n"
31    /* 3 */ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
32    /* 4 */ + " xsi:noNamespaceSchemaLocation=\"http://www.qedeq.org/0_01_06/xml/qedeq.xsd\">\n"
33    /* 5 */ + " <HEADER email=\"mime@qedeq.org\">\n"
34    /* 6 */ + " <SPEC name=\"qedeq_sample1\" ruleVersion=\"1.00.00\">\n"
35    /* 7 */ + " <LOCATIONS>\n"
36    /* 8 */ + " \t\r <LOCATION value=\"http://qedeq.org/0.01.06/sample1\"/>\n"
37    /* 9 */ + " </LOCATIONS>\n"
38    /* 10 */ + " </SPEC>\n"
39    /* 11 */ + " <TITLE>\n"
40    /* 12 */ + " <LATEX language=\"en\">\n"
41    /* 13 */ + " Example1\n"
42    /* 14 */ + " </LATEX>\n"
43    /* 15 */ + " </TITLE>\n"
44    /* 16 */ + " <ABSTRACT>\n"
45    /* 17 */ + " <LATEX language=\"en\">\n"
46    /* 18 */ + " 1789.01239In this very first qedeq module the XML specification is demonstrated.\n"
47    /* 19 */ + " </LATEX>\n"
48    /* 20 */ + " </ABSTRACT>\n"
49    /* 21 */ + " <AUTHORS>\n"
50    /* 22 */ + " <AUTHOR email=\"michael@meyling.com\">\n"
51    /* 23 */ + " <LATEX language=\"de\">\n"
52    /* 24 */ + " <![CDATA[Michael Meyling]]>\n"
53    /* 25 */ + " </LATEX>\n"
54    /* 26 */ + " </AUTHOR>\n"
55    /* 27 */ + " </AUTHORS>\n"
56    /* 28 */ + " </HEADER>\n"
57    /* 29 */ + "</QEDEQ>\n";
58   
59    /** We test this object. */
60    private AbstractOutput out;
61   
 
62  47 toggle protected void setUp() throws Exception {
63  47 super.setUp();
64  47 out = new AbstractOutput() {
65   
66    private StringBuffer buffer = new StringBuffer();
67   
 
68  635 toggle public void append(final String text) {
69  635 buffer.append(text);
70    }
71   
 
72  48 toggle public String toString() {
73  48 return buffer.toString();
74    }
75   
 
76  0 toggle public long getPosition() {
77  0 return buffer.length();
78    }
79    };
80    }
81   
 
82  47 toggle protected void tearDown() throws Exception {
83  47 super.tearDown();
84    }
85   
86    /**
87    * Test various print methods.
88    *
89    * @throws Exception Test failed.
90    */
 
91  1 toggle public void testComplete() throws Exception {
92  1 out.println("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
93  1 out.println("<QEDEQ ");
94  1 out.pushLevel();
95  1 out.pushLevel();
96  1 out.print("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
97  1 out.println();
98  1 out.println("xsi:noNamespaceSchemaLocation=\"http://www.qedeq.org/0_01_06/xml/qedeq.xsd\">");
99  1 out.popLevel();
100  1 out.println("<HEADER email=\"mime@qedeq.org\">");
101  1 out.pushLevel();
102  1 out.print("<SPEC name=\"qedeq_sample1\" ruleVersion=\"1.00.00\">");
103  1 out.print("\n");
104  1 out.pushLevel();
105  1 out.println("<LOCATIONS>");
106  1 out.print((Object) ("\t\r <LOCATION value=\"http://qedeq.org/0.01.06/sample1\"/>"
107    + "\n"));
108  1 out.println("</LOCATIONS>");
109  1 out.popLevel();
110  1 out.println("</SPEC>");
111  1 out.println("<TITLE>");
112  1 out.pushLevel();
113  1 out.println("<LATEX language=\"en\">");
114  1 out.println(" Example1");
115  1 out.println("</LATEX>");
116  1 out.popLevel();
117  1 out.println("</TITLE>");
118  1 out.println("<ABSTRACT>");
119  1 out.pushLevel();
120  1 out.println("<LATEX language=\"en\">");
121  1 out.pushLevel();
122  1 out.println(" 1789.01239In this very first qedeq module the XML specification is demonstrated.");
123  1 out.popLevel();
124  1 out.println("</LATEX>");
125  1 out.popLevel();
126  1 out.println("</ABSTRACT>");
127  1 out.println("<AUTHORS>");
128  1 out.pushLevel();
129  1 out.println("<AUTHOR email=\"michael@meyling.com\">");
130  1 out.pushLevel();
131  1 out.println("<LATEX language=\"de\">");
132  1 out.pushLevel();
133  1 out.println(" <![CDATA[Michael Meyling]]>");
134  1 out.popLevel();
135  1 out.println("</LATEX>");
136  1 out.popLevel();
137  1 out.println("</AUTHOR>");
138  1 out.popLevel();
139  1 out.println("</AUTHORS>");
140  1 out.println((Object) " </HEADER>");
141  1 out.pushLevel();
142  1 out.clearLevel();
143  1 out.println("</QEDEQ>");
144   
145  1 assertEquals(StringUtility.string2Hex(XML_DATA),
146    StringUtility.byte2Hex(out.toString().getBytes()));
147   
148  1 assertEquals(XML_DATA, out.toString());
149   
150    // System.out.println(to.toString());
151    }
152   
 
153  1 toggle public void testPushPop() throws Exception {
154  1 out.popLevel();
155  1 out.popLevel();
156  1 out.print("James Bond");
157  1 assertEquals("James Bond", out.toString());
158    }
159   
 
160  1 toggle public void testAdd01() throws Exception {
161  1 out.setColumns(10);
162  1 out.addToken("Hello");
163  1 out.addWs(" ");
164  1 out.addToken("Hello");
165  1 out.flush();
166  1 assertEquals("Hello \nHello", out.toString());
167    }
168   
 
169  1 toggle public void testAdd02() throws Exception {
170  1 out.setColumns(10);
171  1 out.addToken(" Hello");
172  1 out.addWs(" ");
173  1 out.addToken(" Hello");
174  1 out.flush();
175  1 assertEquals(" Hello \n Hello", out.toString());
176    }
177   
 
178  1 toggle public void testAdd03() throws Exception {
179  1 out.setColumns(12);
180  1 out.pushLevel();
181  1 out.addToken("Hello");
182  1 out.addWs(" ");
183  1 out.addToken("Hello");
184  1 out.flush();
185  1 assertEquals(" Hello \n Hello", out.toString());
186    }
187   
 
188  1 toggle public void testAdd04() throws Exception {
189  1 out.setColumns(13);
190  1 out.pushLevel();
191  1 out.addToken("Hello");
192  1 out.addWs(" ");
193  1 out.addToken("Hello");
194  1 out.flush();
195  1 assertEquals(" Hello Hello", out.toString());
196    }
197   
 
198  1 toggle public void testAdd05() throws Exception {
199  1 out.setColumns(12);
200  1 out.pushLevel();
201  1 out.addToken("Hello");
202  1 out.addWs(" ");
203  1 out.addToken("Hello");
204  1 out.flush();
205  1 assertEquals(" Hello \n Hello", out.toString());
206    }
207   
 
208  1 toggle public void testAdd06() throws Exception {
209  1 out.setColumns(10);
210  1 out.pushLevel();
211  1 out.addToken("Hel");
212  1 out.addWs(" ");
213  1 out.addWs(" ");
214  1 out.addWs(" ");
215  1 out.addToken("Hel");
216  1 out.flush();
217  1 assertEquals(" Hel \n Hel", out.toString());
218    }
219   
 
220  1 toggle public void testAdd07() throws Exception {
221  1 out.setColumns(11);
222  1 out.pushLevel();
223  1 out.addToken("Hel");
224  1 out.addWs(" ");
225  1 out.addWs(" ");
226  1 out.addWs(" ");
227  1 out.addToken("Hel");
228  1 out.flush();
229  1 assertEquals(" Hel Hel", out.toString());
230    }
231   
 
232  1 toggle public void testAdd08() throws Exception {
233  1 out.setColumns(10);
234  1 out.pushLevel();
235  1 out.addToken("H");
236  1 out.addToken("e");
237  1 out.addToken("l");
238  1 out.addToken("l");
239  1 out.addToken("o");
240  1 out.addWs(" ");
241  1 out.addToken("H");
242  1 out.addToken("e");
243  1 out.addToken("l");
244  1 out.addToken("l");
245  1 out.addToken("o");
246  1 out.flush();
247  1 assertEquals(" Hello \n Hello", out.toString());
248    }
249   
 
250  1 toggle public void testAdd09() throws Exception {
251  1 out.setColumns(80);
252  1 out.pushLevel();
253  1 out.addToken("Hello");
254  1 out.addWs(" ");
255  1 out.addToken("Hello");
256  1 out.flush();
257  1 assertEquals(" Hello Hello", out.toString());
258    }
259   
 
260  1 toggle public void testAdd10() throws Exception {
261  1 out.setColumns(0);
262  1 out.pushLevel();
263  1 out.addToken("Hello");
264  1 out.addWs(" ");
265  1 out.addToken("Hello");
266  1 out.flush();
267  1 assertEquals(" Hello Hello", out.toString());
268    }
269   
 
270  1 toggle public void testAdd11() throws Exception {
271  1 out.setColumns(10);
272  1 out.pushLevel();
273  1 out.addToken("Hello");
274  1 out.addWs(" ");
275  1 out.addToken("Hello");
276  1 out.flush();
277  1 assertEquals(" Hello \n Hello", out.toString());
278    }
279   
 
280  1 toggle public void testAdd12() throws Exception {
281  1 out.setColumns(7);
282  1 out.pushLevel();
283  1 out.addToken("Hello");
284  1 out.addWs(" ");
285  1 out.addToken("Hello");
286  1 out.flush();
287  1 assertEquals(" Hello\n Hello", out.toString());
288    }
289   
 
290  1 toggle public void testAdd13() throws Exception {
291  1 out.setColumns(1);
292  1 out.pushLevel();
293  1 out.addToken("Hello");
294  1 out.addWs(" ");
295  1 out.addToken("Hello");
296  1 out.flush();
297  1 assertEquals(" Hello\n Hello", out.toString());
298    }
299   
 
300  1 toggle public void testAdd14() throws Exception {
301  1 out.setColumns(1);
302  1 out.pushLevel();
303  1 out.addToken("Hello");
304  1 out.pushLevel();
305  1 out.popLevel();
306  1 out.addWs(" ");
307  1 out.addToken("Hello");
308  1 out.flush();
309  1 assertEquals(" Hello\n Hello", out.toString());
310    }
311   
 
312  1 toggle public void testAdd15() throws Exception {
313  1 out.setColumns(1);
314  1 out.pushLevel();
315  1 out.addToken("Hello");
316  1 out.addWs(" ");
317  1 out.pushLevel();
318  1 out.popLevel();
319  1 out.addToken("Hello");
320  1 out.flush();
321  1 assertEquals(" Hello\n Hello", out.toString());
322    }
323   
 
324  1 toggle public void testAdd16() throws Exception {
325  1 out.setColumns(7);
326  1 out.pushLevel();
327  1 out.addToken("Hel");
328  1 out.addToken("lo");
329  1 out.addWs(" ");
330  1 out.addToken("Hello");
331  1 out.flush();
332  1 assertEquals(" Hello\n Hello", out.toString());
333    }
334   
 
335  1 toggle public void testAdd17() throws Exception {
336  1 out.setColumns(5);
337  1 out.pushLevel();
338  1 out.addToken("Hel");
339  1 out.addToken("lo");
340  1 out.addWs(" ");
341  1 out.addToken("Hello");
342  1 out.flush();
343  1 assertEquals(" Hello\n Hello", out.toString());
344    }
345   
 
346  1 toggle public void testAdd18() throws Exception {
347  1 out.setColumns(5);
348  1 out.pushLevel();
349  1 out.addToken("Hel");
350  1 out.pushLevel();
351  1 out.popLevel();
352  1 out.addToken("lo");
353  1 out.addWs(" ");
354  1 out.addToken("Hello");
355  1 out.flush();
356  1 assertEquals(" Hello\n Hello", out.toString());
357    }
358   
 
359  1 toggle public void testAddWsToken01() throws Exception {
360  1 out.setColumns(9);
361  1 out.addToken("123456789");
362  1 out.addWs(" ");
363  1 out.addWs("\n");
364  1 out.addWs("\t");
365  1 out.addToken("abcdefghi");
366  1 out.flush();
367  1 assertEquals("123456789\nabcdefghi", out.toString());
368    }
369   
 
370  1 toggle public void testAddWsToken02() throws Exception {
371  1 out.setColumns(18);
372  1 out.addToken("123456789");
373  1 out.addWs(" ");
374  1 out.addWs("\n");
375  1 out.addWs("\t");
376  1 out.addToken("abcdefghi");
377  1 out.flush();
378  1 assertEquals("123456789 \n\tabcdefghi", out.toString());
379    }
380   
 
381  1 toggle public void testAddWsToken03() throws Exception {
382  1 out.setColumns(1);
383  1 out.addToken("123456789");
384  1 out.addWs(" ");
385  1 out.addWs("\n");
386  1 out.addWs("\t");
387  1 out.addToken("abcdefghi");
388  1 out.flush();
389  1 assertEquals("123456789\nabcdefghi", out.toString());
390    }
391   
 
392  1 toggle public void testAddWsToken04() throws Exception {
393  1 out.setColumns(21);
394  1 out.addToken("123456789");
395  1 out.addWs(" ");
396  1 out.addWs("\n");
397  1 out.addWs("\t");
398  1 out.addToken("abcdefghi");
399  1 out.flush();
400  1 assertEquals("123456789 \n\tabcdefghi", out.toString());
401    }
402   
 
403  1 toggle public void testAddWsToken05() throws Exception {
404  1 out.setColumns(20);
405  1 out.addToken("123456789");
406  1 out.addWs(" ");
407  1 out.addWs("\n");
408  1 out.addWs("\t");
409  1 out.addToken("abcdefghi");
410  1 out.flush();
411  1 assertEquals("123456789 \n\tabcdefghi", out.toString());
412    }
413   
 
414  1 toggle public void testAddWsToken06() throws Exception {
415  1 out.setColumns(20);
416  1 out.addToken("123456789");
417  1 out.addWs(" ");
418  1 out.addToken("abcdefghi");
419  1 out.flush();
420  1 assertEquals("123456789 \nabcdefghi", out.toString());
421    }
422   
 
423  1 toggle public void testAddWsToken07() throws Exception {
424  1 out.setColumns(20);
425  1 out.addToken("123456789");
426  1 out.addWs(" ");
427  1 out.addToken("abcdefghi");
428  1 out.flush();
429  1 assertEquals("123456789 abcdefghi", out.toString());
430    }
431   
 
432  1 toggle public void testAddWsToken08() throws Exception {
433  1 out.setColumns(20);
434  1 out.addToken("123456789");
435  1 out.addWs(" ");
436  1 out.addToken("abcdefghi");
437  1 out.addWs(" ");
438  1 out.addToken("123456789");
439  1 out.flush();
440  1 assertEquals("123456789 abcdefghi \n123456789", out.toString());
441    }
442   
 
443  1 toggle public void testAddWsToken09() throws Exception {
444  1 out.setColumns(20);
445  1 out.addToken("123456789");
446  1 out.addWs(" ");
447  1 out.addToken("abcdefghi");
448  1 out.addWs(" ");
449  1 out.addToken("1");
450  1 out.flush();
451  1 assertEquals("123456789 abcdefghi \n1", out.toString());
452    }
453   
 
454  1 toggle public void testAddWsToken11() throws Exception {
455  1 out.setColumns(11);
456  1 out.pushLevel();
457  1 out.addToken("123456789");
458  1 out.addWs(" ");
459  1 out.addWs("\n");
460  1 out.addWs("\t");
461  1 out.addToken("abcdefghi");
462  1 out.flush();
463  1 assertEquals(" 123456789\n \tabcdefghi", out.toString());
464    }
465   
 
466  1 toggle public void testAddWsToken12() throws Exception {
467  1 out.setColumns(20);
468  1 out.pushLevel();
469  1 out.addToken("123456789");
470  1 out.addWs(" ");
471  1 out.addWs("\n");
472  1 out.addWs("\t");
473  1 out.addToken("abcdefghi");
474  1 out.flush();
475  1 assertEquals(" 123456789 \n \tabcdefghi", out.toString());
476    }
477   
 
478  1 toggle public void testAddWsToken13() throws Exception {
479  1 out.setColumns(1);
480  1 out.pushLevel();
481  1 out.addToken("123456789");
482  1 out.addWs(" ");
483  1 out.addWs("\n");
484  1 out.addWs("\t");
485  1 out.addToken("abcdefghi");
486  1 out.flush();
487  1 assertEquals(" 123456789\n abcdefghi", out.toString());
488    }
489   
 
490  1 toggle public void testAddWsToken14() throws Exception {
491  1 out.setColumns(23);
492  1 out.pushLevel(" ");
493  1 out.addToken("123456789");
494  1 out.addWs(" ");
495  1 out.addWs("\n");
496  1 out.addWs("\t");
497  1 out.addToken("abcdefghi");
498  1 out.flush();
499  1 assertEquals(" 123456789 \n \tabcdefghi", out.toString());
500    }
501   
 
502  1 toggle public void testAddWsToken15() throws Exception {
503  1 out.setColumns(22);
504  1 out.pushLevel("\t\t");
505  1 out.addToken("123456789");
506  1 out.addWs(" ");
507  1 out.addWs("\n");
508  1 out.addWs("\t");
509  1 out.addToken("abcdefghi");
510  1 out.flush();
511  1 assertEquals("\t\t123456789 \n\t\t\tabcdefghi", out.toString());
512    }
513   
 
514  1 toggle public void testAddWsToken16() throws Exception {
515  1 out.setColumns(22);
516  1 out.pushLevel("**");
517  1 out.addToken("123456789");
518  1 out.addWs(" ");
519  1 out.addToken("abcdefghi");
520  1 out.flush();
521  1 assertEquals("**123456789 \n**abcdefghi", out.toString());
522    }
523   
 
524  1 toggle public void testAddWsToken17() throws Exception {
525  1 out.setColumns(24);
526  1 out.pushLevel("iiii");
527  1 out.addToken("123456789");
528  1 out.addWs(" ");
529  1 out.addToken("abcdefghi");
530  1 out.flush();
531  1 assertEquals("iiii123456789 abcdefghi", out.toString());
532    }
533   
 
534  1 toggle public void testAddWsToken18() throws Exception {
535  1 out.setColumns(20);
536  1 out.pushLevel("");
537  1 out.addToken("123456789");
538  1 out.addWs(" ");
539  1 out.addToken("abcdefghi");
540  1 out.addWs(" ");
541  1 out.addToken("123456789");
542  1 out.flush();
543  1 assertEquals("123456789 abcdefghi \n123456789", out.toString());
544    }
545   
 
546  1 toggle public void testAddWsToken19() throws Exception {
547  1 out.setColumns(27);
548  1 out.pushLevel("1234567");
549  1 out.addToken("123456789");
550  1 out.addWs(" ");
551  1 out.addToken("abcdefghi");
552  1 out.addWs(" ");
553  1 out.popLevel("1234567".length());
554  1 out.addToken("1");
555  1 out.flush();
556  1 assertEquals("1234567123456789 abcdefghi \n12345671", out.toString());
557    }
558   
 
559  1 toggle public void testAddWsToken20() throws Exception {
560  1 out.setColumns(27);
561  1 out.pushLevel("1234567");
562  1 out.addToken("123456789");
563  1 out.addWs(" ");
564  1 out.addToken("abcdefghi");
565  1 out.addWs(" ");
566  1 out.popLevel("1234567".length());
567  1 out.setTabLevel();
568  1 out.addToken("1");
569  1 out.flush();
570  1 assertEquals("1234567123456789 abcdefghi \n1", out.toString());
571    }
572   
 
573  1 toggle public void testAddWsToken21() throws Exception {
574  1 out.setColumns(27);
575  1 out.pushLevel("1234567");
576  1 out.addToken("123456789");
577  1 out.addWs(" ");
578  1 out.addToken("abcdefghi");
579  1 out.addWs(" ");
580  1 out.popLevel("1234567".length());
581  1 out.println();
582  1 out.addToken("1");
583  1 out.flush();
584  1 assertEquals("1234567123456789 abcdefghi \n1", out.toString());
585    }
586   
 
587  1 toggle public void testAddWsToken22() throws Exception {
588  1 out.setColumns(27);
589  1 out.pushLevel("1234567");
590  1 out.addToken("123456789");
591  1 out.popLevel("1234567".length());
592  1 out.addWs(" ");
593  1 out.addToken("abcdefghi");
594  1 out.addWs(" ");
595  1 out.println();
596  1 out.addToken("1");
597  1 out.flush();
598  1 assertEquals("1234567123456789 abcdefghi \n1", out.toString());
599    }
600   
 
601  1 toggle public void testPrintChar01() throws Exception {
602  1 out.setColumns(3);
603  1 out.print('1');
604  1 out.print('2');
605  1 out.print('3');
606  1 out.print('4');
607  1 out.flush();
608  1 assertEquals("123\n4", out.toString());
609    }
610   
 
611  1 toggle public void testPrintChar02() throws Exception {
612  1 out.setColumns(5);
613  1 out.setLevel("--");
614  1 out.print('1');
615  1 out.print('2');
616  1 out.print('3');
617  1 out.print('4');
618  1 out.flush();
619  1 assertEquals("--123\n--4", out.toString());
620    }
621   
 
622  1 toggle public void testPrintString01() throws Exception {
623  1 out.setColumns(5);
624  1 out.setLevel("++");
625  1 out.print("1");
626  1 out.print("2");
627  1 out.print("3");
628  1 out.print("4");
629  1 out.flush();
630  1 assertEquals("++123\n++4", out.toString());
631    }
632   
 
633  1 toggle public void testPrintString02() throws Exception {
634  1 out.setColumns(5);
635  1 out.print("1 2 3 4");
636  1 out.flush();
637  1 assertEquals("1 2 3\n4", out.toString());
638    }
639   
 
640  1 toggle public void testPrintString03() throws Exception {
641  1 out.setColumns(6);
642  1 out.print("1 2 3 4");
643  1 out.flush();
644  1 assertEquals("1 2 3 \n4", out.toString());
645    }
646   
 
647  1 toggle public void testPrintString04() throws Exception {
648  1 out.setColumns(4);
649  1 out.print("1 2 3");
650  1 out.flush();
651  1 assertEquals("1 2\n3", out.toString());
652    }
653   
654    }
655