public void testGetNestedElements() {
   Hashtable h = new Hashtable();
   h.put("six", java.lang.String.class);
   h.put("thirteen", java.lang.StringBuffer.class);
   h.put("fourteen", java.lang.StringBuffer.class);
   h.put("fifteen", java.lang.StringBuffer.class);
   IntrospectionHelper ih = IntrospectionHelper.getHelper(getClass());
   Enumeration enum_ = ih.getNestedElements();
   while (enum_.hasMoreElements()) {
     String name = (String) enum_.nextElement();
     Class expect = (Class) h.get(name);
     assertNotNull("Support for " + name + " in IntrospectioNHelperTest?", expect);
     assertEquals("Return type of " + name, expect, ih.getElementType(name));
     h.remove(name);
   }
   assertTrue("Found all", h.isEmpty());
 }
  public void testAddText() throws BuildException {
    IntrospectionHelper ih = IntrospectionHelper.getHelper(java.lang.String.class);
    try {
      ih.addText("", "test");
      fail("String doesn\'t support addText");
    } catch (BuildException be) {
    }

    ih = IntrospectionHelper.getHelper(getClass());
    ih.addText(this, "test");
    try {
      ih.addText(this, "test2");
      fail("test2 shouldn\'t be equal to test");
    } catch (BuildException be) {
      assertTrue(be.getException() instanceof AssertionFailedError);
    }
  }
 public void testSupportsCharacters() {
   IntrospectionHelper ih = IntrospectionHelper.getHelper(java.lang.String.class);
   assertTrue("String doesn\'t support addText", !ih.supportsCharacters());
   ih = IntrospectionHelper.getHelper(getClass());
   assertTrue("IntrospectionHelperTest supports addText", ih.supportsCharacters());
 }
 public void testAttributeSetters() throws BuildException {
   Project p = new Project();
   p.setBasedir("/tmp");
   IntrospectionHelper ih = IntrospectionHelper.getHelper(getClass());
   try {
     ih.setAttribute(p, this, "one", "test");
     fail("setOne doesn't exist");
   } catch (BuildException be) {
   }
   try {
     ih.setAttribute(p, this, "two", "test");
     fail("setTwo returns non void");
   } catch (BuildException be) {
   }
   try {
     ih.setAttribute(p, this, "three", "test");
     fail("setThree takes no args");
   } catch (BuildException be) {
   }
   try {
     ih.setAttribute(p, this, "four", "test");
     fail("setFour takes two args");
   } catch (BuildException be) {
   }
   try {
     ih.setAttribute(p, this, "five", "test");
     fail("setFive takes array arg");
   } catch (BuildException be) {
   }
   try {
     ih.setAttribute(p, this, "six", "test");
     fail("Project doesn't have a String constructor");
   } catch (BuildException be) {
   }
   ih.setAttribute(p, this, "seven", "2");
   try {
     ih.setAttribute(p, this, "seven", "3");
     fail("2 shouldn't be equals to three");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "eight", "2");
   try {
     ih.setAttribute(p, this, "eight", "3");
     fail("2 shouldn't be equals to three - as int");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "nine", "2");
   try {
     ih.setAttribute(p, this, "nine", "3");
     fail("2 shouldn't be equals to three - as Integer");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "ten", "2");
   try {
     ih.setAttribute(p, this, "ten", "3");
     fail("/tmp/2 shouldn't be equals to /tmp/3");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "eleven", "2");
   try {
     ih.setAttribute(p, this, "eleven", "on");
     fail("on shouldn't be false");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "twelve", "2");
   try {
     ih.setAttribute(p, this, "twelve", "on");
     fail("on shouldn't be false");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "thirteen", "org.apache.tools.ant.Project");
   try {
     ih.setAttribute(p, this, "thirteen", "org.apache.tools.ant.ProjectHelper");
     fail("org.apache.tools.ant.Project shouldn't be equal to org.apache.tools.ant.ProjectHelper");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   try {
     ih.setAttribute(p, this, "thirteen", "org.apache.tools.ant.Project2");
     fail("org.apache.tools.ant.Project2 doesn't exist");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof ClassNotFoundException);
   }
   ih.setAttribute(p, this, "fourteen", "2");
   try {
     ih.setAttribute(p, this, "fourteen", "on");
     fail("2 shouldn't be equals to three - as StringBuffer");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "fifteen", "abcd");
   try {
     ih.setAttribute(p, this, "fifteen", "on");
     fail("o shouldn't be equal to a");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
   ih.setAttribute(p, this, "sixteen", "abcd");
   try {
     ih.setAttribute(p, this, "sixteen", "on");
     fail("o shouldn't be equal to a");
   } catch (BuildException be) {
     assertTrue(be.getException() instanceof AssertionFailedError);
   }
 }
  public void testElementCreators() throws BuildException {
    IntrospectionHelper ih = IntrospectionHelper.getHelper(getClass());
    try {
      ih.getElementType("one");
      fail("don't have element type one");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("two");
      fail("createTwo takes arguments");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("three");
      fail("createThree returns void");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("four");
      fail("createFour returns array");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("five");
      fail("createFive returns primitive type");
    } catch (BuildException be) {
    }
    assertEquals(java.lang.String.class, ih.getElementType("six"));
    assertEquals("test", ih.createElement(this, "six"));

    try {
      ih.getElementType("seven");
      fail("addSeven takes two arguments");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("eight");
      fail("addEight takes no arguments");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("nine");
      fail("nine return non void");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("ten");
      fail("addTen takes array argument");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("eleven");
      fail("addTen takes primitive argument");
    } catch (BuildException be) {
    }
    try {
      ih.getElementType("twelve");
      fail("no primitive constructor for java.lang.Class");
    } catch (BuildException be) {
    }
    assertEquals(java.lang.StringBuffer.class, ih.getElementType("thirteen"));
    assertEquals("test", ih.createElement(this, "thirteen").toString());

    try {
      ih.createElement(this, "fourteen");
      fail("fourteen throws NullPointerException");
    } catch (BuildException be) {
      assertTrue(be.getException() instanceof NullPointerException);
    }

    try {
      ih.createElement(this, "fourteen");
      fail("fifteen throws NullPointerException");
    } catch (BuildException be) {
      assertTrue(be.getException() instanceof NullPointerException);
    }
  }