User: vharcq
Date: 02/02/22 15:25:15
Modified: core/samples/junit/src/xdoclet/test/valueobject
ValueObjectTest.java
Log:
Handling of Collections changes (add/remove/update) inside a value object
Test case for that to not going mad a second time ;)
Revision Changes Path
1.2 +80 -3
xdoclet/core/samples/junit/src/xdoclet/test/valueobject/ValueObjectTest.java
Index: ValueObjectTest.java
===================================================================
RCS file:
/cvsroot/xdoclet/xdoclet/core/samples/junit/src/xdoclet/test/valueobject/ValueObjectTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- ValueObjectTest.java 21 Feb 2002 23:10:04 -0000 1.1
+++ ValueObjectTest.java 22 Feb 2002 23:25:15 -0000 1.2
@@ -1,5 +1,5 @@
/*
- * $Id: ValueObjectTest.java,v 1.1 2002/02/21 23:10:04 vharcq Exp $
+ * $Id: ValueObjectTest.java,v 1.2 2002/02/22 23:25:15 vharcq Exp $
*/
package xdoclet.test.valueobject;
@@ -8,6 +8,7 @@
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import test.interfaces.CustomerNormalValue;
+import test.interfaces.AddressValue;
public class ValueObjectTest extends TestCase
{
@@ -40,10 +41,10 @@
public void testEqualsWithPk() {
CustomerNormalValue a = new CustomerNormalValue();
a.setFirstName("Ara");
- a.setId("001");
+ a.setId("007");
CustomerNormalValue b = new CustomerNormalValue();
b.setFirstName("Ara");
- b.setId("001");
+ b.setId("007");
assert("Should be Equals", a.equals(b));
}
@@ -59,5 +60,81 @@
// b.setId("001");
// assert("Should be Equals", a.equals(b));
// }
+
+ /**
+ * Two VO with same ID ...
+ */
+ public void testComposedCollection() {
+ CustomerNormalValue a = new CustomerNormalValue();
+ a.setFirstName("Ara");
+ a.setId("007");
+ AddressValue a1 = new AddressValue("1","1","1");
+ AddressValue a2 = new AddressValue("2","2","2");
+ AddressValue a3 = new AddressValue("3","3","3");
+ AddressValue a4 = new AddressValue("4","4","4");
+ a.addShippingAddressValue(a1);
+ a.addShippingAddressValue(a2);
+ a.addShippingAddressValue(a3);
+ // Clean the object
+ a.cleanShippingAddressValue();
+
+ assert("Should be 3 addresses", a.getShippingAddressValues().length == 3);
+ try{
+ a.addShippingAddressValue(a3);
+ assert("Add an existing object must throw exception",false);
+ }catch (IllegalStateException e){}
+ a.removeShippingAddressValue(a2);
+ assert("Should be 2 addresses", a.getShippingAddressValues().length == 2);
+ try{
+ a.updateShippingAddressValue(a2);
+ assert("Update on non existing object must throw exception",false);
+ }catch (IllegalStateException e){}
+ try{
+ a.removeShippingAddressValue(a2);
+ assert("Remove on non existing object must throw exception",false);
+ }catch (IllegalStateException e){}
+ assert("Should be 2 addresses", a.getShippingAddressValues().length == 2);
+ a.addShippingAddressValue(a4);
+ assert("Should be 2 addresses", a.getShippingAddressValues().length == 3);
+ a.updateShippingAddressValue(a3);
+
+ // The sniffers
+
+ assert("One added" , a.getAddedShippingAddressValues().size() == 1);
+ assert("One removed" , a.getRemovedShippingAddressValues().size() == 1);
+ assert("One Updated" , a.getUpdatedShippingAddressValues().size() == 1);
+
+ // And now the madness
+ a.updateShippingAddressValue(a3);
+ a.updateShippingAddressValue(a3);
+ a.updateShippingAddressValue(a3);
+ assert("One Updated" , a.getUpdatedShippingAddressValues().size() == 1);
+
+ a.removeShippingAddressValue(a4);
+ assert("1 - 1 = 0 added" , a.getAddedShippingAddressValues().size() == 0);
+ assert("Again One removed" , a.getRemovedShippingAddressValues().size() ==
1);
+
+ a.addShippingAddressValue(a4);
+ assert("1 added" , a.getAddedShippingAddressValues().size() == 1);
+ assert("Again one removed..." , a.getRemovedShippingAddressValues().size()
== 1);
+ assert("Always One Updated" , a.getUpdatedShippingAddressValues().size() ==
1);
+
+ a.updateShippingAddressValue(a4);
+ assert("Always and always One Updated" ,
a.getUpdatedShippingAddressValues().size() == 1);
+
+ a.removeShippingAddressValue(a4);
+ assert("...Zero added" , a.getAddedShippingAddressValues().size() == 0);
+ assert("...One removed" , a.getRemovedShippingAddressValues().size() == 1);
+ assert("...One Updated" , a.getUpdatedShippingAddressValues().size() == 1);
+
+ // The ultimate madness
+ a.addShippingAddressValue(a2);
+ assert("...Hehe Zero Added" , a.getAddedShippingAddressValues().size() ==
0);
+ assert("...Hehe removed gone" , a.getRemovedShippingAddressValues().size()
== 0);
+ assert("...Again One Updated" , a.getUpdatedShippingAddressValues().size()
== 1);
+ assert("Should be 3 addresses as in the beginning",
a.getShippingAddressValues().length == 3);
+
+ }
+
}
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel