EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.dependency]

COVERAGE SUMMARY FOR SOURCE FILE [TestTextCyclePrinter.java]

nameclass, %method, %block, %line, %
TestTextCyclePrinter.java100% (1/1)100% (8/8)100% (617/617)100% (124/124)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestTextCyclePrinter100% (1/1)100% (8/8)100% (617/617)100% (124/124)
TestTextCyclePrinter (): void 100% (1/1)100% (3/3)100% (1/1)
setUp (): void 100% (1/1)100% (22/22)100% (6/6)
testVisitCycleWith2NodeCycle (): void 100% (1/1)100% (81/81)100% (17/17)
testVisitCycleWith2NodeCycleWithIndentText (): void 100% (1/1)100% (84/84)100% (18/18)
testVisitCycleWith3NodeCycle (): void 100% (1/1)100% (97/97)100% (19/19)
testVisitCyclesWith2Cycles (): void 100% (1/1)100% (150/150)100% (27/27)
testVisitCyclesWith2NodeCycle (): void 100% (1/1)100% (82/82)100% (17/17)
testVisitCyclesWith3NodeCycle (): void 100% (1/1)100% (98/98)100% (19/19)

1/*
2 *  Copyright (c) 2001-2009, Jean Tessier
3 *  All rights reserved.
4 *
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *
9 *      * Redistributions of source code must retain the above copyright
10 *        notice, this list of conditions and the following disclaimer.
11 *
12 *      * Redistributions in binary form must reproduce the above copyright
13 *        notice, this list of conditions and the following disclaimer in the
14 *        documentation and/or other materials provided with the distribution.
15 *
16 *      * Neither the name of Jean Tessier nor the names of his contributors
17 *        may be used to endorse or promote products derived from this software
18 *        without specific prior written permission.
19 *
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
24 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33package com.jeantessier.dependency;
34 
35import java.util.*;
36import java.io.*;
37 
38import junit.framework.*;
39 
40public class TestTextCyclePrinter extends TestCase {
41    private Node a_package;
42    private Node b_package;
43    private Node c_package;
44 
45    protected void setUp() throws Exception {
46        super.setUp();
47 
48        NodeFactory factory = new NodeFactory();
49 
50        a_package = factory.createPackage("a");
51        b_package = factory.createPackage("b");
52        c_package = factory.createPackage("c");
53    }
54 
55    public void testVisitCycleWith2NodeCycle() {
56        List<Node> nodes = new ArrayList<Node>();
57        nodes.add(a_package);
58        nodes.add(b_package);
59        Cycle cycle = new Cycle(nodes);
60 
61        StringWriter expected = new StringWriter();
62        PrintWriter pw = new PrintWriter(expected);
63        pw.println(a_package);
64        pw.println("    --> " + b_package);
65        pw.println("        --> " + a_package);
66        pw.close();
67 
68        StringWriter buffer = new StringWriter();
69        PrintWriter out = new PrintWriter(buffer);
70        CyclePrinter printer = new TextCyclePrinter(out);
71        printer.visitCycle(cycle);
72        out.close();
73 
74        assertEquals(expected.toString(), buffer.toString());
75    }
76 
77    public void testVisitCycleWith2NodeCycleWithIndentText() {
78        List<Node> nodes = new ArrayList<Node>();
79        nodes.add(a_package);
80        nodes.add(b_package);
81        Cycle cycle = new Cycle(nodes);
82 
83        StringWriter expected = new StringWriter();
84        PrintWriter pw = new PrintWriter(expected);
85        pw.println(a_package);
86        pw.println("*--> " + b_package);
87        pw.println("**--> " + a_package);
88        pw.close();
89 
90        StringWriter buffer = new StringWriter();
91        PrintWriter out = new PrintWriter(buffer);
92        CyclePrinter printer = new TextCyclePrinter(out);
93        printer.setIndentText("*");
94        printer.visitCycle(cycle);
95        out.close();
96 
97        assertEquals(expected.toString(), buffer.toString());
98    }
99 
100    public void testVisitCycleWith3NodeCycle() {
101        List<Node> nodes = new ArrayList<Node>();
102        nodes.add(a_package);
103        nodes.add(b_package);
104        nodes.add(c_package);
105        Cycle cycle = new Cycle(nodes);
106 
107        StringWriter expected = new StringWriter();
108        PrintWriter pw = new PrintWriter(expected);
109        pw.println(a_package);
110        pw.println("    --> " + b_package);
111        pw.println("        --> " + c_package);
112        pw.println("            --> " + a_package);
113        pw.close();
114 
115        StringWriter buffer = new StringWriter();
116        PrintWriter out = new PrintWriter(buffer);
117        CyclePrinter printer = new TextCyclePrinter(out);
118        printer.visitCycle(cycle);
119        out.close();
120 
121        assertEquals(expected.toString(), buffer.toString());
122    }
123 
124    public void testVisitCyclesWith2NodeCycle() {
125        List<Node> nodes = new ArrayList<Node>();
126        nodes.add(a_package);
127        nodes.add(b_package);
128        Cycle cycle = new Cycle(nodes);
129 
130        StringWriter expected = new StringWriter();
131        PrintWriter pw = new PrintWriter(expected);
132        pw.println(a_package);
133        pw.println("    --> " + b_package);
134        pw.println("        --> " + a_package);
135        pw.close();
136 
137        StringWriter buffer = new StringWriter();
138        PrintWriter out = new PrintWriter(buffer);
139        CyclePrinter printer = new TextCyclePrinter(out);
140        printer.visitCycles(Collections.singletonList(cycle));
141        out.close();
142 
143        assertEquals(expected.toString(), buffer.toString());
144    }
145 
146    public void testVisitCyclesWith3NodeCycle() {
147        List<Node> nodes = new ArrayList<Node>();
148        nodes.add(a_package);
149        nodes.add(b_package);
150        nodes.add(c_package);
151        Cycle cycle = new Cycle(nodes);
152 
153        StringWriter expected = new StringWriter();
154        PrintWriter pw = new PrintWriter(expected);
155        pw.println(a_package);
156        pw.println("    --> " + b_package);
157        pw.println("        --> " + c_package);
158        pw.println("            --> " + a_package);
159        pw.close();
160 
161        StringWriter buffer = new StringWriter();
162        PrintWriter out = new PrintWriter(buffer);
163        CyclePrinter printer = new TextCyclePrinter(out);
164        printer.visitCycles(Collections.singletonList(cycle));
165        out.close();
166 
167        assertEquals(expected.toString(), buffer.toString());
168    }
169 
170    public void testVisitCyclesWith2Cycles() throws IOException {
171        List<Cycle> cycles = new ArrayList<Cycle>();
172 
173        List<Node> nodes1 = new ArrayList<Node>();
174        nodes1.add(a_package);
175        nodes1.add(b_package);
176        cycles.add(new Cycle(nodes1));
177 
178        List<Node> nodes2 = new ArrayList<Node>();
179        nodes2.add(a_package);
180        nodes2.add(b_package);
181        nodes2.add(c_package);
182        cycles.add(new Cycle(nodes2));
183 
184        StringWriter expected = new StringWriter();
185        PrintWriter pw = new PrintWriter(expected);
186        pw.println(a_package);
187        pw.println("    --> " + b_package);
188        pw.println("        --> " + a_package);
189        pw.println(a_package);
190        pw.println("    --> " + b_package);
191        pw.println("        --> " + c_package);
192        pw.println("            --> " + a_package);
193        pw.close();
194 
195        StringWriter buffer = new StringWriter();
196        PrintWriter out = new PrintWriter(buffer);
197        CyclePrinter printer = new TextCyclePrinter(out);
198        printer.visitCycles(cycles);
199        out.close();
200 
201        assertEquals(expected.toString(), buffer.toString());
202    }
203}

[all classes][com.jeantessier.dependency]
EMMA 2.0.5312 (C) Vladimir Roubtsov