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