public void testEquals()
throws Exception
{
String expr = "@"+Name.class.getName() + "(type=\"type\",subtype=\"subtype\")";
Name n0 = (Name) AnnotationCreator.createAnnotation(expr, Name.class);
getLog().debug("n0: "+n0);
Name n1 = NameDefaults.class.getAnnotation(Name.class);
getLog().debug("n1: "+n1);
assertEquals(n0, n1);
assertEquals(n1, n0);
Name defaultName = NameDefaults.defaultNameType();
getLog().debug("defaultName: "+defaultName);
// The jdk annotation should not equal the defaultName
assertFalse(n1+" != "+defaultName, n1.equals(defaultName));
assertFalse(defaultName+" != "+n1, defaultName.equals(n1));
// The AnnotationCreator annotation should not equal the defaultName
assertFalse(n0+" != "+defaultName, n0.equals(defaultName));
assertFalse(defaultName+" != "+n0, defaultName.equals(n0));
Name n2 = new NameImpl("type", "subtype");
getLog().debug("n2: " + n2);
assertEquals(n0, n2);
assertEquals(n2, n0);
assertEquals(n1, n2);
assertEquals(n2, n1);
Name n3 = new NameImpl();
assertFalse(n0 + "!=" + n3, n0.equals(n3));
assertFalse(n3 + "!=" + n0, n3.equals(n0));
assertFalse(n1 + "!=" + n3, n1.equals(n3));
assertFalse(n3 + "!=" + n1, n3.equals(n1));
}