diff options
Diffstat (limited to 'israfil-foundation-valuemodel/src/test/java/net/israfil/foundation/valuemodel/ValueHolderTest.java')
| -rw-r--r-- | israfil-foundation-valuemodel/src/test/java/net/israfil/foundation/valuemodel/ValueHolderTest.java | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/israfil-foundation-valuemodel/src/test/java/net/israfil/foundation/valuemodel/ValueHolderTest.java b/israfil-foundation-valuemodel/src/test/java/net/israfil/foundation/valuemodel/ValueHolderTest.java new file mode 100644 index 0000000..271c4a0 --- /dev/null +++ b/israfil-foundation-valuemodel/src/test/java/net/israfil/foundation/valuemodel/ValueHolderTest.java @@ -0,0 +1,143 @@ +/*
+ * Copyright (c) 2003-2008Israfil Consulting Services Corporation
+ * Copyright (c) 2003-2008 Christian Edward Gruber
+ * All Rights Reserved
+ *
+ * $Id: Types.java 129 2006-12-31 23:20:02Z cgruber $
+ */
+package net.israfil.foundation.valuemodel;
+
+import net.israfil.foundation.core.Copyright;
+
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Tests for ValueHolder
+ *
+ * @author <a href="mailto:cgruber@israfil.net">Christian Edward Gruber</a>
+ * @author Latest: $Author: cgruber $
+ * @version $Revision: 129 $
+ */
+@Copyright(years={"2003","2004","2005","2006","2007","2008"},owner="Israfil Consulting Services Corporation",license="BSD")
+@Test
+public class ValueHolderTest {
+
+ private String stringValue = null;
+ private Integer integerValue = null;
+ private ValueHolder<String> stringValueHolder = null;
+ private ValueHolder<Integer> integerValueHolder = null;
+
+ @BeforeMethod
+ protected void setUp() throws Exception {
+ stringValue = "String Value";
+ integerValue = new Integer(5);
+ stringValueHolder = new ValueHolder<String>(stringValue);
+ integerValueHolder = new ValueHolder<Integer>(integerValue);
+ }
+
+ @AfterMethod
+ protected void tearDown() throws Exception {
+ stringValue = null;
+ integerValue = null;
+ stringValueHolder = null;
+ integerValueHolder = null;
+ }
+
+ /*
+ * Test for void ValueHolder(Object)
+ */
+ public void testValueHolderObject() {
+ String valueString = "Value";
+ ValueHolder<String>valueHolder = new ValueHolder<String>(valueString);
+ Assert.assertEquals(valueString,valueHolder.get());
+ }
+
+ public void testGetValue() {
+ Assert.assertEquals(stringValue,stringValueHolder.get());
+ Assert.assertEquals(integerValue,integerValueHolder.get());
+ }
+
+ public void testSetValueObject() {
+ String stringValue2 = "String Value 2";
+ stringValueHolder.set(stringValue2);
+ Assert.assertEquals(stringValue2,stringValueHolder.get());
+ }
+
+ public void testAddObserverObjectString() {
+ String stringValue2 = "String Value 2";
+ CallbackObject<String> callback = new CallbackObject<String>(stringValueHolder);
+ stringValueHolder.addObservers("notifyMe:java.lang.Object:java.lang.Object:java.lang.Object",callback);
+ stringValueHolder.set(stringValue2);
+ Assert.assertTrue(callback.notified);
+ }
+ public void testRemoveObserverObjectString() {
+ String stringValue2 = "String Value 2";
+ CallbackObject<String> callback = new CallbackObject<String>(stringValueHolder);
+ stringValueHolder.addObservers("notifyMe:java.lang.Object:java.lang.Object:java.lang.Object",callback);
+ stringValueHolder.removeObservers(callback);
+ stringValueHolder.set(stringValue2);
+ Assert.assertFalse(callback.notified);
+ }
+ public void testAddApproverObjectString() {
+ String stringValue2 = "String Value 2";
+ CallbackObject<String> callback = new CallbackObject<String>(stringValueHolder);
+ stringValueHolder.addVetoers("approve:java.lang.Object:java.lang.Object:java.lang.Object",callback);
+ stringValueHolder.set(stringValue2);
+ Assert.assertEquals(stringValue2,stringValueHolder.get());
+
+ callback = new CallbackObject<String>(stringValueHolder);
+ stringValueHolder.addVetoers("approve:java.lang.Object:java.lang.Object:java.lang.Object",callback);
+ stringValueHolder.set(stringValue2);
+ stringValueHolder.set(stringValue);
+ Assert.assertEquals(stringValue2,stringValueHolder.get());
+ Assert.assertFalse(stringValue.equals(stringValueHolder.get()));
+ }
+ public void testRemoveApproverObjectString() {
+ String stringValue2 = "String Value 2";
+ CallbackObject<String> callback = new CallbackObject<String>(stringValueHolder);
+ stringValueHolder.addVetoers("approve:java.lang.Object:java.lang.Object:java.lang.Object",callback);
+ stringValueHolder.removeVetoers(callback);
+ stringValueHolder.set(stringValue2);
+ stringValueHolder.set(stringValue);
+ Assert.assertEquals(stringValue,stringValueHolder.get());
+ Assert.assertFalse(stringValue2.equals(stringValueHolder.get()));
+ }
+ public void finalize() throws Throwable {
+ stringValue = null;
+ integerValue = null;
+ stringValueHolder = null;
+ integerValueHolder = null;
+ super.finalize();
+ }
+
+ public class CallbackObject<E> {
+ private final MutableValue<E> valueModel;
+ public boolean notified = false;
+ public Object oldValue = null;
+ public Object newValue = null;
+ public CallbackObject(MutableValue<E> valueModel) {
+ this.valueModel = valueModel;
+ }
+ public void notifyMe(Object sender, Object oldValue, Object newValue) {
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ Assert.assertEquals(this.valueModel,sender);
+ notified = true;
+ }
+ public boolean approve(Object sender, Object oldValue, Object newValue) {
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ Assert.assertEquals(this.valueModel,sender);
+ if (!newValue.equals(stringValue)) return true;
+ return false;
+ }
+ public void finalize() throws Throwable {
+ this.oldValue = null;
+ this.newValue = null;
+ super.finalize();
+ }
+ }
+}
|
