@Test
 public void testprintClass()
     throws NoSuchFieldException, SecurityException, IllegalArgumentException,
         IllegalAccessException {
   UMLArrows arrows = UMLArrows.getInstance();
   Field supers = UMLArrows.class.getDeclaredField("supers");
   supers.setAccessible(true);
   Field interfaces = UMLArrows.class.getDeclaredField("interfaces");
   interfaces.setAccessible(true);
   Field uses = UMLArrows.class.getDeclaredField("uses");
   uses.setAccessible(true);
   Field fields = UMLArrows.class.getDeclaredField("fields");
   fields.setAccessible(true);
   Field fieldbuffer = UMLArrows.class.getDeclaredField("fieldBuffer");
   fieldbuffer.setAccessible(true);
   Field methodbuffer = UMLArrows.class.getDeclaredField("methodBuffer");
   methodbuffer.setAccessible(true);
   Field className = UMLArrows.class.getDeclaredField("className");
   className.setAccessible(true);
   className.set(arrows, "test");
   supers.set(arrows, "");
   interfaces.set(arrows, new ArrayList<String>());
   uses.set(arrows, new ArrayList<String>());
   fields.set(arrows, new ArrayList<String>());
   StringBuffer fTemp = new StringBuffer();
   fTemp.append("I was thinking about this buffer and it was a good idea.");
   StringBuffer mTemp = new StringBuffer();
   mTemp.append("This is a powerful MethodBuffer.");
   fieldbuffer.set(arrows, fTemp);
   methodbuffer.set(arrows, mTemp);
   arrows.printClass();
   assertEquals(
       "   test [\n     shape=\"record\"      label = \"{test|I was thinking about this buffer and it was a good idea.|This is a powerful MethodBuffer.\n}\"\n];\n",
       outContent.toString());
 }
 @Test
 public void testprintClassNoBuffers()
     throws NoSuchFieldException, SecurityException, IllegalArgumentException,
         IllegalAccessException {
   UMLArrows arrows = UMLArrows.getInstance();
   Field supers = UMLArrows.class.getDeclaredField("supers");
   supers.setAccessible(true);
   Field interfaces = UMLArrows.class.getDeclaredField("interfaces");
   interfaces.setAccessible(true);
   Field uses = UMLArrows.class.getDeclaredField("uses");
   uses.setAccessible(true);
   Field fields = UMLArrows.class.getDeclaredField("fields");
   fields.setAccessible(true);
   Field fieldbuffer = UMLArrows.class.getDeclaredField("fieldBuffer");
   fieldbuffer.setAccessible(true);
   Field methodbuffer = UMLArrows.class.getDeclaredField("methodBuffer");
   methodbuffer.setAccessible(true);
   Field className = UMLArrows.class.getDeclaredField("className");
   className.setAccessible(true);
   className.set(arrows, "test");
   supers.set(arrows, "");
   interfaces.set(arrows, new ArrayList<String>());
   uses.set(arrows, new ArrayList<String>());
   fields.set(arrows, new ArrayList<String>());
   fieldbuffer.set(arrows, new StringBuffer());
   methodbuffer.set(arrows, new StringBuffer());
   arrows.printClass();
   assertEquals(
       "   test [\n     shape=\"record\"      label = \"{test||\n}\"\n];\n",
       outContent.toString());
 }