@Test
 public void maxDepth()
     throws AttributeNotFoundException, NoSuchFieldException, IllegalAccessException {
   setOptionsViaReflection("maxDepth", 2);
   Map result = (Map) converter.extractObject(new SelfRefBean1(), new Stack<String>(), true);
   String c = (String) ((Map) result.get("bean2")).get("bean1");
   assertTrue("Recurence detected", c.contains("bean1: toString"));
 }
 @Test
 public void checkDeadLockDetection() throws AttributeNotFoundException {
   Map result = (Map) converter.extractObject(new SelfRefBean1(), new Stack<String>(), true);
   assertNotNull("Bean 2 is set", result.get("bean2"));
   assertNotNull("Bean2:Bean1 is set", ((Map) result.get("bean2")).get("bean1"));
   assertEquals(
       "Reference breackage", ((Map) result.get("bean2")).get("bean1").getClass(), String.class);
   assertTrue("Bean 3 should be resolved", result.get("bean3") instanceof Map);
 }
 @Test
 public void customNegativeSimpifier()
     throws MalformedObjectNameException, AttributeNotFoundException {
   ObjectName name = new ObjectName("java.lang:type=Memory");
   Map result = (Map) converter.extractObject(name, new Stack<String>(), true);
   // Since we removed the objectname simplifier from the list of simplifiers
   // explicitely, the converter should return the full blown object;
   assertEquals("type=Memory", result.get("canonicalKeyPropertyListString"));
 }
 @Test
 public void maxObjects()
     throws NoSuchFieldException, IllegalAccessException, AttributeNotFoundException {
   setOptionsViaReflection("maxObjects", 1);
   Map<String, Object> result =
       (Map)
           converter.extractObject(
               new InnerValueTestBean("foo", "bar", "baz"), new Stack<String>(), true);
   boolean found = false;
   for (Object val : result.values()) {
     if (val instanceof String) {
       found = ((String) val).matches("^\\[.*(limit).*\\]$");
     }
   }
   assertTrue(found);
 }
 @Test
 public void basics() throws AttributeNotFoundException {
   Map result = (Map) converter.extractObject(new SelfRefBean1(), new Stack<String>(), true);
   assertNotNull("Bean2 is set", result.get("bean2"));
   assertNotNull("Binary attribute is set", result.get("strong"));
 }
 @Test
 public void fileSimplifier() throws AttributeNotFoundException {
   Map result = (Map) converter.extractObject(new File("/tmp"), new Stack<String>(), true);
   assertNull(result.get("parent"));
 }
 @Test
 public void customSimplifier() throws AttributeNotFoundException {
   Date date = new Date();
   Map result = (Map) converter.extractObject(date, new Stack<String>(), true);
   assertEquals(date.getTime(), result.get("millis"));
 }