From 7c279747beb43c7e88633a6228a155a30e6834f7 Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Mon, 27 May 2024 11:38:33 -0400 Subject: Initial import --- .../foundation/valuemodel/ValueHolderTest.java | 143 +++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 israfil-foundation-valuemodel/src/test/java/net/israfil/foundation/valuemodel/ValueHolderTest.java (limited to 'israfil-foundation-valuemodel/src/test/java') 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 Christian Edward Gruber + * @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 stringValueHolder = null; + private ValueHolder integerValueHolder = null; + + @BeforeMethod + protected void setUp() throws Exception { + stringValue = "String Value"; + integerValue = new Integer(5); + stringValueHolder = new ValueHolder(stringValue); + integerValueHolder = new ValueHolder(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"; + ValueHoldervalueHolder = new ValueHolder(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 callback = new CallbackObject(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 callback = new CallbackObject(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 callback = new CallbackObject(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(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 callback = new CallbackObject(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 { + private final MutableValue valueModel; + public boolean notified = false; + public Object oldValue = null; + public Object newValue = null; + public CallbackObject(MutableValue 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(); + } + } +} -- cgit v1.2.3