public virtual void testReflection()
 {
     StringTemplate.setLintMode(true);
     StringTemplate a = new StringTemplate("$attributes$");
     StringTemplateErrorListener errors = new ErrorBuffer();
     a.setErrorListener(errors);
     a.setAttribute("name", "Terence");
     a.setAttribute("name", "Tom");
     StringTemplate embedded = new StringTemplate("embedded");
     embedded.setAttribute("z", "hi");
     a.setAttribute("name", embedded);
     a.setAttribute("notUsed", "foo");
     String expecting = "Template anonymous:" + newline +
         "    1. Attribute notUsed values:" + newline +
         "        1. String" + newline +
         "    2. Attribute name values:" + newline +
         "        1. String" + newline +
         "        2. String" + newline +
         "        3. Template anonymous:" + newline +
         "            1. Attribute z values:" + newline +
         "                1. String" + newline;
     a.setPredefinedAttributes();
     String results = a.ToString();
     //System.out.println(results);
     StringTemplate.setLintMode(false);
     Assert.AreEqual(results, expecting);
 }