public void testDefaultValues() throws Exception
{
String expr = "@org.jboss.test.annotation.factory.support.ComplexWithDefault";
Annotation annotation = (Annotation)AnnotationCreator.createAnnotation(expr, ComplexWithDefault.class);
assertEquals(ComplexWithDefault.class, annotation.annotationType());
ComplexWithDefault complex = (ComplexWithDefault)annotation;
assertEquals('d', complex.ch());
assertEquals("default", complex.string());
assertEquals(1.0, complex.flt());
assertEquals(2.3, complex.dbl());
assertEquals(2, complex.shrt());
assertEquals(123456789, complex.lng());
assertEquals(123, complex.integer());
assertEquals(true, complex.bool());
assertEquals(String.class, complex.clazz());
assertEquals(MyEnum.ONE, complex.enumVal());
assertEquals("default", complex.annotation().value());
assertEquals(new String[]{"The", "defaults"}, complex.array());
int[] expectedIntArray = new int[] {1,2,3};
int[] actualIntArray = complex.intArray();
assertEquals(expectedIntArray.length, actualIntArray.length);
for (int i = 0 ; i < expectedIntArray.length ; i++)
{
assertEquals(expectedIntArray[i], actualIntArray[i]);
}