}
@Test
public void testCreateHashCodeAndEqualsForPrimitives() throws Exception
{
JavaClassSource aClass = Roaster
.parse(JavaClassSource.class,
"public class Foo { private boolean aBoolean; private byte aByte; private char aChar; private short aShort; private int anInt; private long aLong; private float aFloat; private double aDouble; }");
FieldSource<JavaClassSource> booleanField = aClass.getField("aBoolean");
FieldSource<JavaClassSource> byteField = aClass.getField("aByte");
FieldSource<JavaClassSource> charField = aClass.getField("aChar");
FieldSource<JavaClassSource> shortField = aClass.getField("aShort");
FieldSource<JavaClassSource> intField = aClass.getField("anInt");
FieldSource<JavaClassSource> longField = aClass.getField("aLong");
FieldSource<JavaClassSource> floatField = aClass.getField("aFloat");
FieldSource<JavaClassSource> doubleField = aClass.getField("aDouble");
Refactory.createHashCodeAndEquals(aClass, booleanField, byteField, charField, shortField, intField, longField,
floatField, doubleField);
List<MethodSource<JavaClassSource>> methods = aClass.getMethods();
assertTrue(aClass.getMethods().size() == 2);
MethodSource<JavaClassSource> equals = methods.get(0);
MethodSource<JavaClassSource> hashcode = methods.get(1);
assertEqualsForPrimitives(equals);
assertHashCodeForPrimitives(hashcode);
assertFalse(aClass.hasSyntaxErrors());
aClass.removeMethod(equals);
aClass.removeMethod(hashcode);
assertTrue(aClass.getMethods().size() == 0);
// equals only
Refactory.createEquals(aClass, booleanField, byteField, charField, shortField, intField, longField,
floatField, doubleField);
methods = aClass.getMethods();
assertTrue(aClass.getMethods().size() == 1);
equals = methods.get(0);
assertEqualsForPrimitives(equals);
assertFalse(aClass.hasSyntaxErrors());
aClass.removeMethod(equals);
assertTrue(aClass.getMethods().size() == 0);
// hashCode only
Refactory.createHashCode(aClass, booleanField, byteField, charField, shortField, intField, longField,
floatField, doubleField);
assertTrue(aClass.getMethods().size() == 1);
methods = aClass.getMethods();
equals = methods.get(0);
assertHashCodeForPrimitives(equals);
assertFalse(aClass.hasSyntaxErrors());
aClass.removeMethod(equals);
assertTrue(aClass.getMethods().size() == 0);
}