Clover coverage report - Dependency Finder
Coverage timestamp: Mon Nov 29 2010 15:00:50 PST
file stats: LOC: 981   Methods: 27
NCLOC: 805   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
TestXMLPrinter.java - 98.9% 92.6% 98.7%
coverage coverage
 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   
 33    package com.jeantessier.dependency;
 34   
 35    import java.io.*;
 36    import javax.xml.parsers.*;
 37   
 38    import junit.framework.*;
 39    import org.apache.oro.text.perl.*;
 40    import org.xml.sax.*;
 41   
 42    public class TestXMLPrinter extends TestCase implements ErrorHandler {
 43    private static final String SPECIFIC_ENCODING = "iso-latin-1";
 44    private static final String SPECIFIC_DTD_PREFIX = "./etc";
 45   
 46    private XMLReader reader;
 47    private Perl5Util perl;
 48    private NodeFactory factory;
 49    private StringWriter out;
 50   
 51  23 protected void setUp() throws Exception {
 52  23 boolean validate = Boolean.getBoolean("DEPENDENCYFINDER_TESTS_VALIDATE");
 53   
 54  23 reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
 55  23 reader.setFeature("http://xml.org/sax/features/validation", validate);
 56  23 reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", validate);
 57  23 reader.setErrorHandler(this);
 58   
 59  23 perl = new Perl5Util();
 60   
 61  23 factory = new NodeFactory();
 62  23 out = new StringWriter();
 63    }
 64   
 65  1 public void testDefaultDTDPrefix() {
 66  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out));
 67   
 68  1 String xmlDocument = out.toString();
 69  1 assertTrue(xmlDocument + "Missing DTD", perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument));
 70  1 assertTrue("DTD \"" + perl.group(1) + "\" does not have prefix \"" + XMLPrinter.DEFAULT_DTD_PREFIX + "\"", perl.group(1).startsWith(XMLPrinter.DEFAULT_DTD_PREFIX));
 71   
 72  1 try {
 73  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 74  0 fail("Parsed non-existant document\n" + xmlDocument);
 75    } catch (SAXException ex) {
 76    // Ignore
 77    } catch (IOException ex) {
 78  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 79    }
 80    }
 81   
 82  1 public void testSpecificDTDPrefix() {
 83  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 84   
 85  1 String xmlDocument = out.toString();
 86  1 assertTrue(xmlDocument + "Missing DTD", perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument));
 87  1 assertTrue("DTD \"" + perl.group(1) + "\" does not have prefix \"./etc\"", perl.group(1).startsWith(SPECIFIC_DTD_PREFIX));
 88   
 89  1 try {
 90  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 91  0 fail("Parsed non-existant document\n" + xmlDocument);
 92    } catch (SAXException ex) {
 93    // Ignore
 94    } catch (IOException ex) {
 95  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 96    }
 97    }
 98   
 99  1 public void testDefaultEncoding() {
 100  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out));
 101   
 102  1 String xmlDocument = out.toString();
 103  1 assertTrue(xmlDocument + "Missing encoding", perl.match("/encoding=\"([^\"]*)\"/", xmlDocument));
 104  1 assertEquals("Encoding", XMLPrinter.DEFAULT_ENCODING, perl.group(1));
 105   
 106  1 try {
 107  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 108  0 fail("Parsed non-existant document\n" + xmlDocument);
 109    } catch (SAXException ex) {
 110    // Ignore
 111    } catch (IOException ex) {
 112  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 113    }
 114    }
 115   
 116  1 public void testSpecificEncoding() {
 117  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), SPECIFIC_ENCODING, XMLPrinter.DEFAULT_DTD_PREFIX);
 118   
 119  1 String xmlDocument = out.toString();
 120  1 assertTrue(xmlDocument + "Missing encoding", perl.match("/encoding=\"([^\"]*)\"/", xmlDocument));
 121  1 assertEquals("Encoding", SPECIFIC_ENCODING, perl.group(1));
 122   
 123  1 try {
 124  1 reader.parse(new InputSource(new StringReader(xmlDocument)));
 125  0 fail("Parsed non-existant document\n" + xmlDocument);
 126    } catch (SAXException ex) {
 127    // Ignore
 128    } catch (IOException ex) {
 129  0 fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument);
 130    }
 131    }
 132   
 133  1 public void testShowInboundsPackageTrue() throws IOException {
 134  1 factory.createPackage("outbound").addDependency(factory.createPackage("inbound"));
 135  1 factory.createPackage("empty");
 136   
 137  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 138  1 printer.setShowInbounds(true);
 139  1 printer.setShowOutbounds(false);
 140   
 141  1 printer.traverseNodes(factory.getPackages().values());
 142   
 143  1 int lineNumber = 0;
 144  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 145   
 146  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 147  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 148  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 149  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 150  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 151  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 152  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 153  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 154  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 155  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 156  1 assertEquals("line " + ++lineNumber, " <inbound type=\"package\" confirmed=\"no\">outbound</inbound>", in.readLine());
 157  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 158  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 159  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 160  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 161  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 162   
 163  1 assertEquals("End of file", null, in.readLine());
 164    }
 165   
 166  1 public void testShowInboundsPackageFalse() throws IOException {
 167  1 factory.createPackage("outbound").addDependency(factory.createPackage("inbound"));
 168  1 factory.createPackage("empty");
 169   
 170  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 171  1 printer.setShowInbounds(false);
 172  1 printer.setShowOutbounds(false);
 173   
 174  1 printer.traverseNodes(factory.getPackages().values());
 175   
 176  1 int lineNumber = 0;
 177  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 178   
 179  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 180  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 181  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 182  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 183  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 184  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 185  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 186  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 187  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 188  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 189  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 190  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 191  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 192  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 193  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 194   
 195  1 assertEquals("End of file", null, in.readLine());
 196    }
 197   
 198  1 public void testShowInboundsClassTrue() throws IOException {
 199  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 200  1 factory.createClass("empty.Empty");
 201   
 202  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 203  1 printer.setShowInbounds(true);
 204  1 printer.setShowOutbounds(false);
 205   
 206  1 printer.traverseNodes(factory.getPackages().values());
 207   
 208  1 int lineNumber = 0;
 209  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 210   
 211  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 212  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 213  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 214  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 215  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 216  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 217  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 218  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 219  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 220  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 221  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 222  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 223  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 224  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 225  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 226  1 assertEquals("line " + ++lineNumber, " <inbound type=\"class\" confirmed=\"no\">outbound.Outbound</inbound>", in.readLine());
 227  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 228  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 229  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 230  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 231  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 232  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 233  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 234  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 235  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 236   
 237  1 assertEquals("End of file", null, in.readLine());
 238    }
 239   
 240  1 public void testShowInboundsClassFalse() throws IOException {
 241  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 242  1 factory.createClass("empty.Empty");
 243   
 244  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 245  1 printer.setShowInbounds(false);
 246  1 printer.setShowOutbounds(false);
 247   
 248  1 printer.traverseNodes(factory.getPackages().values());
 249   
 250  1 int lineNumber = 0;
 251  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 252   
 253  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 254  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 255  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 256  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 257  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 258  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 259  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 260  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 261  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 262  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 263  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 264  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 265  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 266  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 267  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 268  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 269  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 270  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 271  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 272  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 273  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 274  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 275  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 276  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 277   
 278  1 assertEquals("End of file", null, in.readLine());
 279    }
 280   
 281  1 public void testShowInboundsFeatureTrue() throws IOException {
 282  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 283  1 factory.createFeature("empty.Empty.empty()");
 284   
 285  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 286  1 printer.setShowInbounds(true);
 287  1 printer.setShowOutbounds(false);
 288   
 289  1 printer.traverseNodes(factory.getPackages().values());
 290   
 291  1 int lineNumber = 0;
 292  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 293   
 294  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 295  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 296  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 297  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 298  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 299  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 300  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 301  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 302  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 303  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 304  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty.empty()</name>", in.readLine());
 305  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 306  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 307  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 308  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 309  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 310  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 311  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 312  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 313  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 314  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 315  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 316  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 317  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 318  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 319  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 320  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 321  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 322  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 323  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 324  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 325  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 326  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 327  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 328   
 329  1 assertEquals("End of file", null, in.readLine());
 330    }
 331   
 332  1 public void testShowInboundsFeatureFalse() throws IOException {
 333  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 334  1 factory.createFeature("empty.Empty.empty()");
 335   
 336  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 337  1 printer.setShowInbounds(false);
 338  1 printer.setShowOutbounds(false);
 339   
 340  1 printer.traverseNodes(factory.getPackages().values());
 341   
 342  1 int lineNumber = 0;
 343  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 344   
 345  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 346  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 347  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 348  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 349  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 350  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 351  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 352  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 353  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 354  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 355  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty.empty()</name>", in.readLine());
 356  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 357  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 358  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 359  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 360  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 361  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 362  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 363  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 364  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 365  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 366  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 367  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 368  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 369  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 370  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 371  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 372  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 373  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 374  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 375  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 376  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 377  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 378   
 379  1 assertEquals("End of file", null, in.readLine());
 380    }
 381   
 382  1 public void testShowOutboundsPackageTrue() throws IOException {
 383  1 factory.createPackage("outbound").addDependency(factory.createPackage("inbound"));
 384  1 factory.createPackage("empty");
 385   
 386  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 387  1 printer.setShowInbounds(false);
 388  1 printer.setShowOutbounds(true);
 389   
 390  1 printer.traverseNodes(factory.getPackages().values());
 391   
 392  1 int lineNumber = 0;
 393  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 394   
 395  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 396  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 397  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 398  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 399  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 400  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 401  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 402  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 403  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 404  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 405  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 406  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 407  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 408  1 assertEquals("line " + ++lineNumber, " <outbound type=\"package\" confirmed=\"no\">inbound</outbound>", in.readLine());
 409  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 410  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 411   
 412  1 assertEquals("End of file", null, in.readLine());
 413    }
 414   
 415  1 public void testShowOutboundsPackageFalse() throws IOException {
 416  1 factory.createPackage("outbound").addDependency(factory.createPackage("inbound"));
 417  1 factory.createPackage("empty");
 418   
 419  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 420  1 printer.setShowInbounds(false);
 421  1 printer.setShowOutbounds(false);
 422   
 423  1 printer.traverseNodes(factory.getPackages().values());
 424   
 425  1 int lineNumber = 0;
 426  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 427   
 428  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 429  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 430  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 431  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 432  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 433  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 434  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 435  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 436  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 437  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 438  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 439  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 440  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 441  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 442  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 443   
 444  1 assertEquals("End of file", null, in.readLine());
 445    }
 446   
 447  1 public void testShowOutboundsClassTrue() throws IOException {
 448  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 449  1 factory.createClass("empty.Empty");
 450   
 451  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 452  1 printer.setShowInbounds(false);
 453  1 printer.setShowOutbounds(true);
 454   
 455  1 printer.traverseNodes(factory.getPackages().values());
 456   
 457  1 int lineNumber = 0;
 458  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 459   
 460  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 461  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 462  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 463  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 464  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 465  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 466  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 467  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 468  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 469  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 470  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 471  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 472  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 473  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 474  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 475  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 476  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 477  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 478  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 479  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 480  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 481  1 assertEquals("line " + ++lineNumber, " <outbound type=\"class\" confirmed=\"no\">inbound.Inbound</outbound>", in.readLine());
 482  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 483  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 484  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 485   
 486  1 assertEquals("End of file", null, in.readLine());
 487    }
 488   
 489  1 public void testShowOutboundsClassFalse() throws IOException {
 490  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 491  1 factory.createClass("empty.Empty");
 492   
 493  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 494  1 printer.setShowInbounds(false);
 495  1 printer.setShowOutbounds(false);
 496   
 497  1 printer.traverseNodes(factory.getPackages().values());
 498   
 499  1 int lineNumber = 0;
 500  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 501   
 502  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 503  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 504  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 505  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 506  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 507  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 508  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 509  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 510  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 511  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 512  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 513  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 514  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 515  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 516  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 517  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 518  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 519  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 520  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 521  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 522  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 523  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 524  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 525  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 526   
 527  1 assertEquals("End of file", null, in.readLine());
 528    }
 529   
 530  1 public void testShowOutboundsFeatureTrue() throws IOException {
 531  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 532  1 factory.createFeature("empty.Empty.empty()");
 533   
 534  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 535  1 printer.setShowInbounds(false);
 536  1 printer.setShowOutbounds(true);
 537   
 538  1 printer.traverseNodes(factory.getPackages().values());
 539   
 540  1 int lineNumber = 0;
 541  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 542   
 543  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 544  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 545  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 546  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 547  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 548  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 549  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 550  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 551  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 552  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 553  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty.empty()</name>", in.readLine());
 554  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 555  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 556  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 557  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 558  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 559  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 560  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 561  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 562  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 563  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 564  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 565  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 566  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 567  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 568  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 569  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 570  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 571  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 572  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 573  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 574  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 575  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 576  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 577   
 578  1 assertEquals("End of file", null, in.readLine());
 579    }
 580   
 581  1 public void testShowOutboundsFeatureFalse() throws IOException {
 582  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 583  1 factory.createFeature("empty.Empty.empty()");
 584   
 585  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 586  1 printer.setShowInbounds(false);
 587  1 printer.setShowOutbounds(false);
 588   
 589  1 printer.traverseNodes(factory.getPackages().values());
 590   
 591  1 int lineNumber = 0;
 592  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 593   
 594  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 595  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 596  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 597  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 598  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 599  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 600  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 601  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 602  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 603  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 604  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty.empty()</name>", in.readLine());
 605  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 606  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 607  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 608  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 609  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 610  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 611  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 612  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 613  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 614  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 615  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 616  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 617  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 618  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 619  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 620  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 621  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 622  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 623  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 624  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 625  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 626  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 627   
 628  1 assertEquals("End of file", null, in.readLine());
 629    }
 630   
 631  1 public void testShowEmptyPackageTrue() throws IOException {
 632  1 factory.createPackage("outbound").addDependency(factory.createPackage("inbound"));
 633  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 634  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 635  1 factory.createPackage("empty");
 636   
 637  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 638  1 printer.setShowEmptyNodes(true);
 639   
 640  1 printer.traverseNodes(factory.getPackages().values());
 641   
 642  1 int lineNumber = 0;
 643  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 644   
 645  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 646  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 647  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 648  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 649  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 650  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 651  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 652  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 653  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 654  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 655  1 assertEquals("line " + ++lineNumber, " <inbound type=\"package\" confirmed=\"no\">outbound</inbound>", in.readLine());
 656  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 657  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 658  1 assertEquals("line " + ++lineNumber, " <inbound type=\"class\" confirmed=\"no\">outbound.Outbound</inbound>", in.readLine());
 659  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 660  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 661  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 662  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 663  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 664  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 665  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 666  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 667  1 assertEquals("line " + ++lineNumber, " <outbound type=\"package\" confirmed=\"no\">inbound</outbound>", in.readLine());
 668  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 669  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 670  1 assertEquals("line " + ++lineNumber, " <outbound type=\"class\" confirmed=\"no\">inbound.Inbound</outbound>", in.readLine());
 671  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 672  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 673  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 674  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 675  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 676  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 677  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 678   
 679  1 assertEquals("End of file", null, in.readLine());
 680    }
 681   
 682  1 public void testShowEmptyPackageTrueWithConfirmed() throws IOException {
 683  1 factory.createPackage("outbound", true).addDependency(factory.createPackage("inbound", true));
 684  1 factory.createClass("outbound.Outbound", true).addDependency(factory.createClass("inbound.Inbound", true));
 685  1 factory.createFeature("outbound.Outbound.outbound()", true).addDependency(factory.createFeature("inbound.Inbound.inbound()", true));
 686  1 factory.createPackage("empty", true);
 687   
 688  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 689  1 printer.setShowEmptyNodes(true);
 690   
 691  1 printer.traverseNodes(factory.getPackages().values());
 692   
 693  1 int lineNumber = 0;
 694  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 695   
 696  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 697  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 698  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 699  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 700  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 701  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"yes\">", in.readLine());
 702  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 703  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 704  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"yes\">", in.readLine());
 705  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 706  1 assertEquals("line " + ++lineNumber, " <inbound type=\"package\" confirmed=\"yes\">outbound</inbound>", in.readLine());
 707  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"yes\">", in.readLine());
 708  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 709  1 assertEquals("line " + ++lineNumber, " <inbound type=\"class\" confirmed=\"yes\">outbound.Outbound</inbound>", in.readLine());
 710  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"yes\">", in.readLine());
 711  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 712  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"yes\">outbound.Outbound.outbound()</inbound>", in.readLine());
 713  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 714  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 715  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 716  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"yes\">", in.readLine());
 717  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 718  1 assertEquals("line " + ++lineNumber, " <outbound type=\"package\" confirmed=\"yes\">inbound</outbound>", in.readLine());
 719  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"yes\">", in.readLine());
 720  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 721  1 assertEquals("line " + ++lineNumber, " <outbound type=\"class\" confirmed=\"yes\">inbound.Inbound</outbound>", in.readLine());
 722  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"yes\">", in.readLine());
 723  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 724  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"yes\">inbound.Inbound.inbound()</outbound>", in.readLine());
 725  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 726  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 727  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 728  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 729   
 730  1 assertEquals("End of file", null, in.readLine());
 731    }
 732   
 733  1 public void testShowEmptyPackageFalse() throws IOException {
 734  1 factory.createPackage("outbound").addDependency(factory.createPackage("inbound"));
 735  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 736  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 737  1 factory.createPackage("empty");
 738   
 739  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 740  1 printer.setShowEmptyNodes(false);
 741   
 742  1 printer.traverseNodes(factory.getPackages().values());
 743   
 744  1 int lineNumber = 0;
 745  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 746   
 747  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 748  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 749  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 750  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 751  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 752  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 753  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 754  1 assertEquals("line " + ++lineNumber, " <inbound type=\"package\" confirmed=\"no\">outbound</inbound>", in.readLine());
 755  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 756  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 757  1 assertEquals("line " + ++lineNumber, " <inbound type=\"class\" confirmed=\"no\">outbound.Outbound</inbound>", in.readLine());
 758  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 759  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 760  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 761  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 762  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 763  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 764  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 765  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 766  1 assertEquals("line " + ++lineNumber, " <outbound type=\"package\" confirmed=\"no\">inbound</outbound>", in.readLine());
 767  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 768  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 769  1 assertEquals("line " + ++lineNumber, " <outbound type=\"class\" confirmed=\"no\">inbound.Inbound</outbound>", in.readLine());
 770  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 771  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 772  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 773  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 774  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 775  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 776  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 777   
 778  1 assertEquals("End of file", null, in.readLine());
 779    }
 780   
 781  1 public void testShowEmptyClassTrue() throws IOException {
 782  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 783  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 784  1 factory.createClass("empty.Empty");
 785   
 786  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 787  1 printer.setShowEmptyNodes(true);
 788   
 789  1 printer.traverseNodes(factory.getPackages().values());
 790   
 791  1 int lineNumber = 0;
 792  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 793   
 794  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 795  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 796  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 797  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 798  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 799  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 800  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 801  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 802  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 803  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 804  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 805  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 806  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 807  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 808  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 809  1 assertEquals("line " + ++lineNumber, " <inbound type=\"class\" confirmed=\"no\">outbound.Outbound</inbound>", in.readLine());
 810  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 811  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 812  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 813  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 814  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 815  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 816  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 817  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 818  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 819  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 820  1 assertEquals("line " + ++lineNumber, " <outbound type=\"class\" confirmed=\"no\">inbound.Inbound</outbound>", in.readLine());
 821  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 822  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 823  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 824  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 825  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 826  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 827  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 828   
 829  1 assertEquals("End of file", null, in.readLine());
 830    }
 831   
 832  1 public void testShowEmptyClassFalse() throws IOException {
 833  1 factory.createClass("outbound.Outbound").addDependency(factory.createClass("inbound.Inbound"));
 834  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 835  1 factory.createClass("empty.Empty");
 836   
 837  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 838  1 printer.setShowEmptyNodes(false);
 839   
 840  1 printer.traverseNodes(factory.getPackages().values());
 841   
 842  1 int lineNumber = 0;
 843  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 844   
 845  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 846  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 847  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 848  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 849  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 850  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 851  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 852  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 853  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 854  1 assertEquals("line " + ++lineNumber, " <inbound type=\"class\" confirmed=\"no\">outbound.Outbound</inbound>", in.readLine());
 855  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 856  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 857  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 858  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 859  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 860  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 861  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 862  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 863  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 864  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 865  1 assertEquals("line " + ++lineNumber, " <outbound type=\"class\" confirmed=\"no\">inbound.Inbound</outbound>", in.readLine());
 866  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 867  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 868  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 869  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 870  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 871  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 872  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 873   
 874  1 assertEquals("End of file", null, in.readLine());
 875    }
 876   
 877  1 public void testShowEmptyFeatureTrue() throws IOException {
 878  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 879  1 factory.createFeature("empty.Empty.empty()");
 880   
 881  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 882  1 printer.setShowEmptyNodes(true);
 883   
 884  1 printer.traverseNodes(factory.getPackages().values());
 885   
 886  1 int lineNumber = 0;
 887  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 888   
 889  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 890  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 891  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 892  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 893  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 894  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 895  1 assertEquals("line " + ++lineNumber, " <name>empty</name>", in.readLine());
 896  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 897  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty</name>", in.readLine());
 898  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 899  1 assertEquals("line " + ++lineNumber, " <name>empty.Empty.empty()</name>", in.readLine());
 900  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 901  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 902  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 903  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 904  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 905  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 906  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 907  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 908  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 909  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 910  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 911  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 912  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 913  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 914  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 915  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 916  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 917  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 918  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 919  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 920  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 921  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 922  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 923  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 924   
 925  1 assertEquals("End of file", null, in.readLine());
 926    }
 927   
 928  1 public void testShowEmptyFeatureFalse() throws IOException {
 929  1 factory.createFeature("outbound.Outbound.outbound()").addDependency(factory.createFeature("inbound.Inbound.inbound()"));
 930  1 factory.createFeature("empty.Empty.empty()");
 931   
 932  1 XMLPrinter printer = new XMLPrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX);
 933  1 printer.setShowEmptyNodes(false);
 934   
 935  1 printer.traverseNodes(factory.getPackages().values());
 936   
 937  1 int lineNumber = 0;
 938  1 BufferedReader in = new BufferedReader(new StringReader(out.toString()));
 939   
 940  1 assertEquals("line " + ++lineNumber, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>", in.readLine());
 941  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 942  1 assertEquals("line " + ++lineNumber, "<!DOCTYPE dependencies SYSTEM \"./etc/dependencies.dtd\">", in.readLine());
 943  1 assertEquals("line " + ++lineNumber, "", in.readLine());
 944  1 assertEquals("line " + ++lineNumber, "<dependencies>", in.readLine());
 945  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 946  1 assertEquals("line " + ++lineNumber, " <name>inbound</name>", in.readLine());
 947  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 948  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound</name>", in.readLine());
 949  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 950  1 assertEquals("line " + ++lineNumber, " <name>inbound.Inbound.inbound()</name>", in.readLine());
 951  1 assertEquals("line " + ++lineNumber, " <inbound type=\"feature\" confirmed=\"no\">outbound.Outbound.outbound()</inbound>", in.readLine());
 952  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 953  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 954  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 955  1 assertEquals("line " + ++lineNumber, " <package confirmed=\"no\">", in.readLine());
 956  1 assertEquals("line " + ++lineNumber, " <name>outbound</name>", in.readLine());
 957  1 assertEquals("line " + ++lineNumber, " <class confirmed=\"no\">", in.readLine());
 958  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound</name>", in.readLine());
 959  1 assertEquals("line " + ++lineNumber, " <feature confirmed=\"no\">", in.readLine());
 960  1 assertEquals("line " + ++lineNumber, " <name>outbound.Outbound.outbound()</name>", in.readLine());
 961  1 assertEquals("line " + ++lineNumber, " <outbound type=\"feature\" confirmed=\"no\">inbound.Inbound.inbound()</outbound>", in.readLine());
 962  1 assertEquals("line " + ++lineNumber, " </feature>", in.readLine());
 963  1 assertEquals("line " + ++lineNumber, " </class>", in.readLine());
 964  1 assertEquals("line " + ++lineNumber, " </package>", in.readLine());
 965  1 assertEquals("line " + ++lineNumber, "</dependencies>", in.readLine());
 966   
 967  1 assertEquals("End of file", null, in.readLine());
 968    }
 969   
 970  0 public void error(SAXParseException ex) {
 971    // Ignore
 972    }
 973   
 974  4 public void fatalError(SAXParseException ex) {
 975    // Ignore
 976    }
 977   
 978  0 public void warning(SAXParseException ex) {
 979    // Ignore
 980    }
 981    }