package cyrille.util; import java.util.ArrayList; import java.util.Date; import java.util.List; import junit.framework.AssertionFailedError; import junit.framework.TestCase; public class MyBeanUtilsTest extends TestCase { public void testIsSimpleType() { assertTrue("String", MyBeanUtils.isSimpleType("a string")); assertTrue("date", MyBeanUtils.isSimpleType(new Date())); assertTrue("Character", MyBeanUtils.isSimpleType(new Character('a'))); assertTrue("integer", MyBeanUtils.isSimpleType(new Integer(1))); } public void testIsEqual() throws Exception { List<String> listOfStrings = new ArrayList<String>(); listOfStrings.add("a 1st string (in list"); listOfStrings.add("a 2nd string (in list"); List<Child> listOfChildren = new ArrayList<Child>(); listOfChildren.add(new Child("a 4th child (in list)", listOfStrings)); listOfChildren.add(new Child("a 5th child (in list)", listOfStrings)); Parent firstParent = new Parent("a-parent", new Date(), Integer.valueOf(1), 2, new StringBuffer("a string buffer"), listOfChildren, new Child("a child", listOfStrings), new Child[] { new Child("a 2nd child (in array)", listOfStrings), new Child("a third child (in array)", listOfStrings) }); Parent secondParent = new Parent("a-parent", new Date(), Integer.valueOf(1), 2, new StringBuffer("a string buffer"), listOfChildren, new Child("a child", listOfStrings), new Child[] { new Child("a 2nd child (in array)", listOfStrings), new Child("a third child (in array)", listOfStrings) }); MyBeanUtils.assertRecursiveEquals(firstParent, secondParent); } public void testIsNotEqualSimpleString() throws Exception { try { MyBeanUtils.assertRecursiveEquals("a 5th child (in list)", "a 5th child (in list) thatIsDifferent"); } catch (AssertionFailedError e) { e.printStackTrace(); return; } fail(); } public void testIsNotEqualSimpleBean() throws Exception { List<String> listOfStrings = new ArrayList<String>(); listOfStrings.add("a 1st string (in list"); listOfStrings.add("a 2nd string (in list"); try { MyBeanUtils.assertRecursiveEquals(new Child("a 5th child (in list)", listOfStrings), new Child( "a 5th child (in list) thatIsDifferent", listOfStrings)); } catch (AssertionFailedError e) { e.printStackTrace(); return; } fail(); } public void testIsNotEqual() throws Exception { List<String> listOfStrings = new ArrayList<String>(); listOfStrings.add("a 1st string (in list"); listOfStrings.add("a 2nd string (in list"); List<Child> firstListOfChildren = new ArrayList<Child>(); firstListOfChildren.add(new Child("a 4th child (in list)", listOfStrings)); firstListOfChildren.add(new Child("a 5th child (in list)", listOfStrings)); List<Child> secondListOfChildren = new ArrayList<Child>(); secondListOfChildren.add(new Child("a 4th child (in list)", listOfStrings)); secondListOfChildren.add(new Child("a 5th child (in list) thatIsDifferent", listOfStrings)); Parent firstParent = new Parent("a-parent", new Date(), Integer.valueOf(1), 2, new StringBuffer("a string buffer"), firstListOfChildren, new Child("a child", listOfStrings), new Child[] { new Child("a 2nd child (in array)", listOfStrings), new Child("a third child (in array)", listOfStrings) }); Parent secondParent = new Parent("a-parent", new Date(), Integer.valueOf(1), 2, new StringBuffer("a string buffer"), secondListOfChildren, new Child("a child", listOfStrings), new Child[] { new Child("a 2nd child (in array)", listOfStrings), new Child("a third child (in array)", listOfStrings) }); try { MyBeanUtils.assertRecursiveEquals(firstParent, secondParent); } catch (AssertionFailedError e) { e.printStackTrace(); return; } fail(); } public static class Parent { String aString; Date aDate; Integer anInteger; int aPrimitiveInt; StringBuffer aStringBuffer; List aListOfChildren = new ArrayList(); Child aChild; Child[] anArrayOfChildren; public Parent(String string, Date date, Integer anInteger, int primitiveInt, StringBuffer stringBuffer, List listOfChildren, Child child, Child[] anArrayOfChildren) { super(); this.aString = string; this.aDate = date; this.anInteger = anInteger; this.aPrimitiveInt = primitiveInt; this.aStringBuffer = stringBuffer; this.aListOfChildren = listOfChildren; this.aChild = child; this.anArrayOfChildren = anArrayOfChildren; } public Child getAChild() { return this.aChild; } public void setAChild(Child child) { this.aChild = child; } public Date getADate() { return this.aDate; } public void setADate(Date date) { this.aDate = date; } public List getAListOfChildren() { return this.aListOfChildren; } public void setAListOfChildren(List listOfChildren) { this.aListOfChildren = listOfChildren; } public Child[] getAnArrayOfChildren() { return this.anArrayOfChildren; } public void setAnArrayOfChildren(Child[] anArrayOfChildren) { this.anArrayOfChildren = anArrayOfChildren; } public Integer getAnInteger() { return this.anInteger; } public void setAnInteger(Integer anInteger) { this.anInteger = anInteger; } public int getAPrimitiveInt() { return this.aPrimitiveInt; } public void setAPrimitiveInt(int primitiveInt) { this.aPrimitiveInt = primitiveInt; } public String getAString() { return this.aString; } public void setAString(String string) { this.aString = string; } public StringBuffer getAStringBuffer() { return this.aStringBuffer; } public void setAStringBuffer(StringBuffer stringBuffer) { this.aStringBuffer = stringBuffer; } } public static class Child { String aString; List aListOfStrings = new ArrayList(); public Child(String string, List listOfStrings) { super(); this.aString = string; this.aListOfStrings = listOfStrings; } public List getAListOfStrings() { return this.aListOfStrings; } public void setAListOfStrings(List listOfStrings) { this.aListOfStrings = listOfStrings; } public String getAString() { return this.aString; } public void setAString(String string) { this.aString = string; } } }