You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/06/28 09:22:23 UTC
svn commit: r417685 [10/15] - in
/incubator/harmony/enhanced/classlib/trunk/modules/beans: ./ make/
src/test/java/org/apache/harmony/beans/tests/java/beans/
src/test/java/org/apache/harmony/beans/tests/java/beans/auxiliary/
src/test/java/org/apache/har...
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/VetoableChangeSupportTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/VetoableChangeSupportTest.java?rev=417685&r1=417684&r2=417685&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/VetoableChangeSupportTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/VetoableChangeSupportTest.java Wed Jun 28 00:22:12 2006
@@ -33,9 +33,10 @@
import java.io.ObjectOutputStream;
import junit.framework.TestCase;
-import org.apache.harmony.beans.tests.java.beans.beancontext.mock.MockVetoableChangeListener;
-import org.apache.harmony.beans.tests.java.beans.mock.NonSerializedVCListener;
-import org.apache.harmony.beans.tests.java.beans.mock.SerializedVCListener;
+import org.apache.harmony.beans.tests.support.beancontext.mock.MockVetoableChangeListener;
+import org.apache.harmony.beans.tests.support.mock.NonSerializedVCListener;
+import org.apache.harmony.beans.tests.support.mock.SerializedVCListener;
+
import tests.util.SerializationTester;
/**
@@ -43,1479 +44,1471 @@
*/
public class VetoableChangeSupportTest extends TestCase {
- /*
- * Constructor a VetoableChangeSupport instance with normal input
- */
- public void testVetoableChangeSupport() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- }
-
- /*
- * Class under test for void addVetoableChangeListener(String,
- * VetoableChangeListener)
- */
- public void testAddVetoableChangeListenerStringVetoableChangeListener() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertFalse(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(0, listeners3.length);
- assertEquals(1, listeners1.length);
- assertEquals(1, listeners2.length);
-
- assertSame(proxy, listeners2[0]);
- VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[0];
- assertSame(proxy, wrappers.getListener());
- assertEquals(propertyName, wrappers.getPropertyName());
-
- }
-
- /*
- * add a null listener
- */
- public void testAddVetoableChangeListenerStringVetoableChangeListener_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, null);
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
-
- assertTrue(support.hasListeners(propertyName));
- assertFalse(support.hasListeners("text"));
-
- assertEquals(1, listeners1.length);
- assertEquals(propertyName,
- ((VetoableChangeListenerProxy) listeners1[0]).getPropertyName());
- assertNull(((VetoableChangeListenerProxy) listeners1[0]).getListener());
- assertEquals(1, listeners2.length);
- assertNull(listeners2[0]);
- }
-
- /*
- * add a listener which has already been added.
- */
- public void testAddVetoableChangeListenerStringVetoableChangeListener_duplicate() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- {
- assertTrue(support.hasListeners(propertyName));
- assertFalse(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(0, listeners3.length);
- assertEquals(1, listeners1.length);
- assertEquals(1, listeners2.length);
-
- assertSame(proxy, listeners2[0]);
- VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[0];
- assertSame(proxy, wrappers.getListener());
- assertEquals(propertyName, wrappers.getPropertyName());
- }
-
- support.addVetoableChangeListener(propertyName, proxy);
- {
- assertTrue(support.hasListeners(propertyName));
- assertFalse(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(0, listeners3.length);
- assertEquals(2, listeners1.length);
- assertEquals(2, listeners2.length);
- for (int i = 0; i < listeners2.length; i++) {
- assertSame(proxy, listeners2[i]);
- VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[i];
- assertSame(proxy, wrappers.getListener());
- assertEquals(propertyName, wrappers.getPropertyName());
- }
- }
- }
-
- /*
- * add listener with null property name.
- */
- public void testAddVetoableChangeListenerStringVetoableChangeListener_property_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- String propertyName = null;
- try {
- support.addVetoableChangeListener(propertyName, proxy);
- fail("Should throw NullPointerException.");
- } catch (NullPointerException e) {
- }
- }
-
- /*
- * add listeners to an invalid property
- */
- public void testAddVetoableChangeListenerStringVetoableChangeListener_property_invalid() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- String propertyName = "label_invalid";
- support.addVetoableChangeListener(propertyName, proxy);
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners("label_invalid");
- assertEquals(1, listeners1.length);
- assertEquals(1, listeners2.length);
- assertEquals("label_invalid",
- ((VetoableChangeListenerProxy) listeners1[0]).getPropertyName());
- assertSame(proxy, listeners2[0]);
- assertFalse(support.hasListeners("label"));
- }
-
- /*
- * add different listener with a particular property name.
- */
- public void testAddVetoableChangeListenerStringVetoableChangeListener_property_duplicate() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- support.addVetoableChangeListener(propertyName, proxy2);
-
- assertTrue(support.hasListeners(propertyName));
- assertFalse(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(0, listeners3.length);
- assertEquals(2, listeners1.length);
- assertEquals(2, listeners2.length);
- for (int i = 0; i < listeners2.length; i++) {
- assertTrue((proxy == listeners2[i]) || (proxy2 == listeners2[i]));
- VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[i];
- assertTrue((proxy == wrappers.getListener())
- || (proxy2 == wrappers.getListener()));
- assertEquals(propertyName, wrappers.getPropertyName());
- }
- }
-
- /*
- * Class under test for void
- * addVetoableChangeListener(VetoableChangeListener)
- */
- public void testAddVetoableChangeListenerVetoableChangeListener() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners("label"));
- assertTrue(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners("label");
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(1, listeners1.length);
- assertEquals(0, listeners2.length);
- assertEquals(0, listeners3.length);
-
- assertSame(proxy, listeners1[0]);
- }
-
- /*
- * add a null listener
- */
- public void testAddVetoableChangeListenerVetoableChangeListener_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
- support.addVetoableChangeListener(null);
-
- assertTrue(support.hasListeners("label"));
- assertTrue(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners("label");
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(1, listeners1.length);
- assertEquals(0, listeners2.length);
- assertEquals(0, listeners3.length);
-
- assertNull(listeners1[0]);
- }
-
- /*
- * add duplicated listeners
- */
- public void testAddVetoableChangeListenerVetoableChangeListener_duplicate() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners("label"));
- assertTrue(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners("label");
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(2, listeners1.length);
- assertEquals(0, listeners2.length);
- assertEquals(0, listeners3.length);
- for (int i = 0; i < listeners1.length; i++) {
- assertSame(proxy, listeners1[i]);
- }
- }
-
- /*
- * add two different listeners
- */
- public void testAddVetoableChangeListenerVetoableChangeListener_TwoDifferent() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "getText");
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy2);
-
- assertTrue(support.hasListeners("label"));
- assertTrue(support.hasListeners("text"));
-
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners("label");
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(2, listeners1.length);
- assertEquals(0, listeners2.length);
- assertEquals(0, listeners3.length);
- for (int i = 0; i < listeners1.length; i++) {
- assertTrue((proxy == listeners1[i]) || (proxy2 == listeners1[i]));
- }
- }
-
- /*
- * add a VetoableChangeListenerProxy
- */
- public void testAddVetoableChangeListenerVetoableChangeListener_Proxy() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- proxy = new MockVetoableChangeListener();
- String propertyName = "label";
-
- VetoableChangeListenerProxy listenerProxy = new VetoableChangeListenerProxy(
- propertyName, proxy);
-
- support.addVetoableChangeListener(listenerProxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertFalse(support.hasListeners("text"));
- {
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
- VetoableChangeListener[] listeners3 = support
- .getVetoableChangeListeners("text");
-
- assertEquals(0, listeners3.length);
- assertEquals(1, listeners1.length);
- assertEquals(1, listeners2.length);
-
- assertSame(proxy, listeners2[0]);
- VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[0];
- assertSame(proxy, wrappers.getListener());
- assertEquals(propertyName, wrappers.getPropertyName());
- }
- // add test for remove proxy
- support.removeVetoableChangeListener(listenerProxy);
- {
- VetoableChangeListener[] listeners1 = support
- .getVetoableChangeListeners();
- VetoableChangeListener[] listeners2 = support
- .getVetoableChangeListeners(propertyName);
- assertEquals(0, listeners1.length);
- assertEquals(0, listeners2.length);
- }
-
- }
-
- /*
- * Class under test for void fireVetoableChange(PropertyChangeEvent)
- */
- public void testFireVetoableChangePropertyChangeEvent()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
- "Label: old", "Label: new");
- support.fireVetoableChange(event);
-
- assertEquals("called", source.getText());
- }
-
- public void testFireVetoableChangePropertyChangeEvent_Veto()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- MockVetoListener normal1 = new MockVetoListener(false, "Norm1");
- support.addVetoableChangeListener(normal1);
-
- MockVetoListener veto1 = new MockVetoListener(true, "Veto1");
- support.addVetoableChangeListener(veto1);
-
- MockVetoListener normal2 = new MockVetoListener(false, "Norm2");
- support.addVetoableChangeListener(normal2);
-
- MockVetoListener veto2 = new MockVetoListener(true, "Veto2");
- support.addVetoableChangeListener(veto2);
-
- PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
- "1", "5");
- try {
- support.fireVetoableChange(event);
- } catch (PropertyVetoException e) {
-
- }
-
- assertEquals(4, support.getVetoableChangeListeners().length);
-
- // Check the calling status of the first listener
- {
- ArrayList oldValues = normal1.getOldValues();
- assertEquals(2, oldValues.size());
- assertEquals("1", oldValues.get(0));
- assertEquals("5", oldValues.get(1));
-
- ArrayList newValues = normal1.getNewValues();
- assertEquals(2, newValues.size());
- assertEquals("5", newValues.get(0));
- assertEquals("1", newValues.get(1));
- }
-
- // Check the status of the second (Veto) listeners
- {
- ArrayList oldValues = veto1.getOldValues();
- assertEquals(2, oldValues.size());
- assertEquals("1", oldValues.get(0));
- assertEquals("5", oldValues.get(1));
-
- ArrayList newValues = veto1.getNewValues();
- assertEquals(2, newValues.size());
- assertEquals("5", newValues.get(0));
- assertEquals("1", newValues.get(1));
- }
-
- // Check the status of the third listeners
- {
- ArrayList oldValues = normal2.getOldValues();
- assertEquals(1, oldValues.size());
- assertEquals("5", oldValues.get(0));
-
- ArrayList newValues = normal2.getNewValues();
- assertEquals(1, newValues.size());
- assertEquals("1", newValues.get(0));
- }
-
- // Check the status of the fourth (Veto) listeners
- {
- ArrayList oldValues = veto2.getOldValues();
- assertEquals(1, oldValues.size());
- assertEquals("5", oldValues.get(0));
-
- ArrayList newValues = veto2.getNewValues();
- assertEquals(1, newValues.size());
- assertEquals("1", newValues.get(0));
- }
- }
-
- /*
- * fire a null event
- */
- public void testFireVetoableChangePropertyChangeEvent_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- try {
- support.fireVetoableChange(null);
- fail("Should throw NullPointerException.");
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- /*
- * register for one property
- */
- public void testFireVetoableChangePropertyChangeEvent_property()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
- "Label: old", "Label: new");
- support.fireVetoableChange(event);
-
- assertEquals("called", source.getText());
- }
-
- public void testFireVetoableChangePropertyChangeEvent_property_invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label_invalid";
- support.addVetoableChangeListener(propertyName, proxy);
- PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
- "Label: old", "Label: new");
- support.fireVetoableChange(event);
-
- assertEquals("text.default", source.getText());
- }
-
- /*
- * there are two same listeners, and another different listener.
- */
- public void testFireVetoableChangePropertyChangeEvent_DuplicateListener()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "increaseTop");
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy2);
-
- PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
- "Label: old", "Label: new");
- support.fireVetoableChange(event);
- assertEquals(2, source.getTop());
- assertEquals("called", source.getText());
- }
-
- /*
- * listener is null
- */
- public void testFireVetoableChangePropertyChangeEvent_listener_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- support.addVetoableChangeListener(null);
- PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
- "Label: old", "Label: new");
- try {
- support.fireVetoableChange(event);
- fail("Should throw NullPointerException.");
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- /*
- * Class under test for void fireVetoableChange(String, boolean, boolean)
- */
- public void testFireVetoableChangeStringbooleanboolean()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", true, false);
-
- assertEquals("called", source.getText());
- }
-
- /*
- * register a null listener
- */
- public void testFireVetoableChangeStringbooleanboolean_listener_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- support.addVetoableChangeListener(null);
- try {
- support.fireVetoableChange("label", true, false);
- fail("Should throw NullPointerException.");
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- /*
- * register listener for property "label".
- */
- public void testFireVetoableChangeStringbooleanboolean_property()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label", true, false);
-
- assertEquals("called", source.getText());
- }
-
- /*
- * register a null listener
- */
- public void testFireVetoableChangeStringbooleanboolean_listener_null_property()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", null);
- try {
- support.fireVetoableChange("label", true, false);
- fail("Should throw NullPointerException.");
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- /*
- * two different listeners registered for all
- */
- public void testFireVetoableChangeStringbooleanboolean_twoListeners()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "increaseTop");
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy2);
-
- support.fireVetoableChange("label", true, false);
-
- assertEquals("called", source.getText());
- assertEquals(1, source.getTop());
- }
-
- /*
- * two different listeners registered for property "label"
- */
- public void testFireVetoableChangeStringbooleanboolean_property_twoListeners()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "increaseTop");
- support.addVetoableChangeListener("label", proxy);
- support.addVetoableChangeListener("label", proxy2);
-
- support.fireVetoableChange("label", true, false);
-
- assertEquals("called", source.getText());
- assertEquals(1, source.getTop());
- }
-
- /*
- * null propertyname
- */
- public void testFireVetoableChangeStringbooleanboolean_Property_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "label",
- "source.text");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange(null, true, false);
- assertEquals(source.getText(), source.getLabel());
- }
-
- /*
- * register listener to label.
- */
- public void testFireVetoableChangeStringbooleanboolean_listener_Property_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "label",
- "source.text");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange(null, true, false);
- assertEquals("label.default", source.getLabel());
- }
-
- /*
- * register a null listener
- */
- public void testFireVetoableChangeStringbooleanboolean_listener_Null_Property_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "label",
- "source.text");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange(null, true, false);
- assertEquals("label.default", source.getLabel());
- }
-
- /*
- * invalid propertyname
- */
- public void testFireVetoableChangeStringbooleanboolean_Property_invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "label",
- "source.text");
- support.addVetoableChangeListener(proxy);
- String newText = "new Text value";
- source.setText(newText);
-
- support.fireVetoableChange("label_invalid", true, false);
- assertEquals(newText, source.getLabel());
- }
-
- /*
- * register listener for lablel property
- */
- public void testFireVetoableChangeStringbooleanboolean_listener_Property_invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "label",
- "source.text");
- support.addVetoableChangeListener("label", proxy);
- String newText = "new Text value";
- source.setText(newText);
-
- support.fireVetoableChange("text", true, false);
- assertEquals("label.default", source.getLabel());
-
- support.fireVetoableChange("label_invalid", true, false);
- assertEquals("label.default", source.getLabel());
-
- support.fireVetoableChange("label", true, false);
- assertEquals(newText, source.getLabel());
- }
-
- /*
- * oldvalue==newValue
- */
- public void testFireVetoableChangeStringbooleanboolean_SameValue()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
-
- support.fireVetoableChange("label", true, true);
- assertEquals("text.default", source.getText());
- }
-
- /*
- * Class under test for void fireVetoableChange(String, int, int)
- *
- * register listener for all
- */
- public void testFireVetoableChangeStringintint()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", 1, 2);
-
- assertEquals("called", source.getText());
- }
-
- /*
- * Propertyname is null register listener for all
- */
- public void testFireVetoableChangeStringintint_property_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange(null, 1, 2);
-
- assertEquals("called", source.getText());
- }
-
- /*
- * property name is invalid register listener for all
- */
- public void testFireVetoableChangeStringintint_property_Invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label_invalide", 1, 2);
-
- assertEquals("called", source.getText());
- }
-
- /*
- * oldvalue=newVlaue register listener for all
- */
- public void testFireVetoableChangeStringintint_SameValue()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", 1, 1);
-
- assertEquals("text.default", source.getText());
- }
-
- /*
- * Class under test for void fireVetoableChange(String, int, int)
- *
- * register listener for one property - "label"
- */
- public void testFireVetoableChangeStringintint_listener()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label", 1, 2);
- assertEquals("called", source.getText());
- }
-
- /*
- * Propertyname is null register listener for one property - "label"
- */
- public void testFireVetoableChangeStringintint_listener_property_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange(null, 1, 2);
-
- assertEquals("text.default", source.getText());
- }
-
- /*
- * property name is invalid register listener for one property - "label"
- */
- public void testFireVetoableChangeStringintint_listener_property_Invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label_invalide", 1, 2);
-
- assertEquals("text.default", source.getText());
- }
-
- /*
- * oldvalue=newVlaue register listener for one property - "label"
- */
- public void testFireVetoableChangeStringintint_listener_SameValue()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label", 1, 1);
-
- assertEquals("text.default", source.getText());
- }
-
- public void testFireVetoableChangeStringintint_listener_Invalid_property()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label_invalid", proxy);
- support.fireVetoableChange("label", 1, 2);
-
- assertEquals("text.default", source.getText());
- }
-
- /*
- * Class under test for void fireVetoableChange(String, Object, Object)
- *
- * register listener for all
- */
- public void testFireVetoableChangeStringObjectObject()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", "Label: old", "Label: new");
- assertEquals("called", source.getText());
- }
-
- /*
- * property name is null. register listener for all
- */
- public void testFireVetoableChangeStringObjectObject_property_Null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange(null, "Label: old", "Label: new");
- assertEquals("called", source.getText());
- }
-
- /*
- * property name is invalid. register listener for all
- */
- public void testFireVetoableChangeStringObjectObject_property_invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label_invalid", "Label: old", "Label: new");
- assertEquals("called", source.getText());
- }
-
- /*
- * oldValue=NewValue. register listener for all
- */
- public void testFireVetoableChangeStringObjectObject_SameValue()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", "Label: old", "Label: old");
- assertEquals("text.default", source.getText());
- }
-
- /*
- * oldValue=NewValue=null. register listener for all
- */
- public void testFireVetoableChangeStringObjectObject_SameValue_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", null, null);
- assertEquals("called", source.getText());
- }
-
- /*
- * Class under test for void fireVetoableChange(String, Object, Object)
- *
- * register listener for one property - "label"
- */
- public void testFireVetoableChangeStringObjectObject_listener()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label", "Label: old", "Label: new");
- assertEquals("called", source.getText());
- }
-
- /*
- * property name is null. register listener for one property - "label"
- */
- public void testFireVetoableChangeStringObjectObject_listener_property_Null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange(null, "Label: old", "Label: new");
- assertEquals("text.default", source.getText());
- }
-
- /*
- * property name is invalid. register listener for one property - "label"
- */
- public void testFireVetoableChangeStringObjectObject_listener_property_invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label_invalid", "Label: old", "Label: new");
- assertEquals("text.default", source.getText());
- }
-
- /*
- * oldValue=NewValue. register listener for one property - "label"
- */
- public void testFireVetoableChangeStringObjectObject_listener_SameValue()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener(proxy);
- support.fireVetoableChange("label", "Label: old", "Label: old");
- assertEquals("text.default", source.getText());
- }
-
- /*
- * oldValue=NewValue=null. register listener for one property - "label"
- */
- public void testFireVetoableChangeStringObjectObject_listener_SameValue_null()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label", proxy);
- support.fireVetoableChange("label", null, null);
- assertEquals("called", source.getText());
- }
-
- /*
- * register listener to an invalid property
- */
- public void testFireVetoableChangeStringObjectObject_listener_invalid()
- throws PropertyVetoException {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- support.addVetoableChangeListener("label_invalid", proxy);
- support.fireVetoableChange("label", "1", "2");
- assertEquals("text.default", source.getText());
- }
-
- /*
- * Class under test for void removeVetoableChangeListener(String,
- * VetoableChangeListener)
- *
- * register listener for property
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_property() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
-
- support.removeVetoableChangeListener(propertyName, proxy);
- assertFalse(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(0, support.getVetoableChangeListeners().length);
- }
-
- /*
- * register listener for property, two same listeners
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_property_more() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- support.addVetoableChangeListener(propertyName, proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(2, support.getVetoableChangeListeners(propertyName).length);
-
- support.removeVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * register listener for property, two different listeners
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_property_diff() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "getText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- support.addVetoableChangeListener(propertyName, proxy2);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(2, support.getVetoableChangeListeners(propertyName).length);
-
- support.removeVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- assertSame(proxy2, support.getVetoableChangeListeners(propertyName)[0]);
- }
-
- /*
- * register listener for property, two different listeners
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_listener_diff() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "getText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
-
- support.removeVetoableChangeListener(propertyName, proxy2);
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_listener_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, null);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
-
- support.removeVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- assertNull(support.getVetoableChangeListeners(propertyName)[0]);
- }
-
- /*
- * register listener for property.
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_all() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(proxy);
- assertTrue(support.hasListeners(propertyName));
-
- support.removeVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * remove listener from null property
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_propertyName_Null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
- try {
- support.removeVetoableChangeListener(null, proxy);
- fail("Should throw NullPointerException.");
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- /*
- * propertyname is invalid
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_propertyName_Invalid() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, proxy);
- assertTrue(support.hasListeners(propertyName));
-
- support.removeVetoableChangeListener(propertyName + "_invalid", proxy);
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * no listener attached to the property
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_propertyName_NoListener() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- assertFalse(support.hasListeners(propertyName));
-
- support.removeVetoableChangeListener(propertyName, proxy);
- assertFalse(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(0, support.getVetoableChangeListeners().length);
- }
-
- /*
- * listener null
- */
- public void testRemoveVetoableChangeListenerStringVetoableChangeListener_listener_null_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- String propertyName = "label";
- support.addVetoableChangeListener(propertyName, null);
- assertTrue(support.hasListeners(propertyName));
-
- support.removeVetoableChangeListener(propertyName, null);
- assertFalse(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(0, support.getVetoableChangeListeners().length);
- }
-
- /*
- * Class under test for void
- * removeVetoableChangeListener(VetoableChangeListener)
- *
- * register listener for all
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_all() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(proxy);
- assertTrue(support.hasListeners(propertyName));
-
- support.removeVetoableChangeListener(proxy);
- assertFalse(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(0, support.getVetoableChangeListeners().length);
- }
-
- /*
- * two same listeners
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_all_more() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(2, support.getVetoableChangeListeners().length);
-
- support.removeVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * two different listeners
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_all_more_diff() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
- VetoableChangeListener proxy2 = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "getText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(proxy);
- support.addVetoableChangeListener(proxy2);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(2, support.getVetoableChangeListeners().length);
-
- support.removeVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- assertEquals(proxy2, support.getVetoableChangeListeners()[0]);
- }
-
- /*
- * listener null
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_all_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(null);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners().length);
-
- support.removeVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * register for one property
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_property() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener("label", proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners().length);
-
- support.removeVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * listener null
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(proxy);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners().length);
-
- support.removeVetoableChangeListener(null);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(1, support.getVetoableChangeListeners().length);
- }
-
- /*
- * register null listener, remove null listener.
- */
- public void testRemoveVetoableChangeListenerVetoableChangeListener_null_null() {
- MockSource source = new MockSource();
- VetoableChangeSupport support = new VetoableChangeSupport(source);
-
- VetoableChangeListener proxy = (VetoableChangeListener) EventHandler
- .create(VetoableChangeListener.class, source, "setText");
-
- String propertyName = "label";
- support.addVetoableChangeListener(null);
-
- assertTrue(support.hasListeners(propertyName));
- assertEquals(1, support.getVetoableChangeListeners().length);
-
- support.removeVetoableChangeListener(null);
-
- assertFalse(support.hasListeners(propertyName));
- assertEquals(0, support.getVetoableChangeListeners(propertyName).length);
- assertEquals(0, support.getVetoableChangeListeners().length);
- }
+ /*
+ * Constructor a VetoableChangeSupport instance with normal input
+ */
+ public void testVetoableChangeSupport() {
+ MockSource source = new MockSource();
+ new VetoableChangeSupport(source);
+
+ }
+
+ /*
+ * Class under test for void addVetoableChangeListener(String,
+ * VetoableChangeListener)
+ */
+ public void testAddVetoableChangeListenerStringVetoableChangeListener() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ String propertyName = "label";
+ support.addVetoableChangeListener(propertyName, proxy);
+
+ assertTrue(support.hasListeners(propertyName));
+ assertFalse(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(0, listeners3.length);
+ assertEquals(1, listeners1.length);
+ assertEquals(1, listeners2.length);
+
+ assertSame(proxy, listeners2[0]);
+ VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[0];
+ assertSame(proxy, wrappers.getListener());
+ assertEquals(propertyName, wrappers.getPropertyName());
+
+ }
+
+ /*
+ * add a null listener
+ */
+ public void testAddVetoableChangeListenerStringVetoableChangeListener_null() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ String propertyName = "label";
+ support.addVetoableChangeListener(propertyName, null);
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+
+ assertTrue(support.hasListeners(propertyName));
+ assertFalse(support.hasListeners("text"));
+
+ assertEquals(1, listeners1.length);
+ assertEquals(propertyName,
+ ((VetoableChangeListenerProxy) listeners1[0]).getPropertyName());
+ assertNull(((VetoableChangeListenerProxy) listeners1[0]).getListener());
+ assertEquals(1, listeners2.length);
+ assertNull(listeners2[0]);
+ }
+
+ /*
+ * add a listener which has already been added.
+ */
+ public void testAddVetoableChangeListenerStringVetoableChangeListener_duplicate() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ String propertyName = "label";
+ support.addVetoableChangeListener(propertyName, proxy);
+ {
+ assertTrue(support.hasListeners(propertyName));
+ assertFalse(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(0, listeners3.length);
+ assertEquals(1, listeners1.length);
+ assertEquals(1, listeners2.length);
+
+ assertSame(proxy, listeners2[0]);
+ VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[0];
+ assertSame(proxy, wrappers.getListener());
+ assertEquals(propertyName, wrappers.getPropertyName());
+ }
+
+ support.addVetoableChangeListener(propertyName, proxy);
+ {
+ assertTrue(support.hasListeners(propertyName));
+ assertFalse(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(0, listeners3.length);
+ assertEquals(2, listeners1.length);
+ assertEquals(2, listeners2.length);
+ for (int i = 0; i < listeners2.length; i++) {
+ assertSame(proxy, listeners2[i]);
+ VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[i];
+ assertSame(proxy, wrappers.getListener());
+ assertEquals(propertyName, wrappers.getPropertyName());
+ }
+ }
+ }
+
+ /*
+ * add listener with null property name.
+ */
+ public void testAddVetoableChangeListenerStringVetoableChangeListener_property_null() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ String propertyName = null;
+ try {
+ support.addVetoableChangeListener(propertyName, proxy);
+ fail("Should throw NullPointerException.");
+ } catch (NullPointerException e) {}
+ }
+
+ /*
+ * add listeners to an invalid property
+ */
+ public void testAddVetoableChangeListenerStringVetoableChangeListener_property_invalid() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ String propertyName = "label_invalid";
+ support.addVetoableChangeListener(propertyName, proxy);
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners("label_invalid");
+ assertEquals(1, listeners1.length);
+ assertEquals(1, listeners2.length);
+ assertEquals("label_invalid",
+ ((VetoableChangeListenerProxy) listeners1[0]).getPropertyName());
+ assertSame(proxy, listeners2[0]);
+ assertFalse(support.hasListeners("label"));
+ }
+
+ /*
+ * add different listener with a particular property name.
+ */
+ public void testAddVetoableChangeListenerStringVetoableChangeListener_property_duplicate() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ VetoableChangeListener proxy2 = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+
+ String propertyName = "label";
+ support.addVetoableChangeListener(propertyName, proxy);
+ support.addVetoableChangeListener(propertyName, proxy2);
+
+ assertTrue(support.hasListeners(propertyName));
+ assertFalse(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(0, listeners3.length);
+ assertEquals(2, listeners1.length);
+ assertEquals(2, listeners2.length);
+ for (int i = 0; i < listeners2.length; i++) {
+ assertTrue((proxy == listeners2[i]) || (proxy2 == listeners2[i]));
+ VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[i];
+ assertTrue((proxy == wrappers.getListener())
+ || (proxy2 == wrappers.getListener()));
+ assertEquals(propertyName, wrappers.getPropertyName());
+ }
+ }
+
+ /*
+ * Class under test for void
+ * addVetoableChangeListener(VetoableChangeListener)
+ */
+ public void testAddVetoableChangeListenerVetoableChangeListener() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+
+ assertTrue(support.hasListeners("label"));
+ assertTrue(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners("label");
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(1, listeners1.length);
+ assertEquals(0, listeners2.length);
+ assertEquals(0, listeners3.length);
+
+ assertSame(proxy, listeners1[0]);
+ }
+
+ /*
+ * add a null listener
+ */
+ public void testAddVetoableChangeListenerVetoableChangeListener_null() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+ support.addVetoableChangeListener(null);
+
+ assertTrue(support.hasListeners("label"));
+ assertTrue(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners("label");
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(1, listeners1.length);
+ assertEquals(0, listeners2.length);
+ assertEquals(0, listeners3.length);
+
+ assertNull(listeners1[0]);
+ }
+
+ /*
+ * add duplicated listeners
+ */
+ public void testAddVetoableChangeListenerVetoableChangeListener_duplicate() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ support.addVetoableChangeListener(proxy);
+
+ assertTrue(support.hasListeners("label"));
+ assertTrue(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners("label");
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(2, listeners1.length);
+ assertEquals(0, listeners2.length);
+ assertEquals(0, listeners3.length);
+ for (int i = 0; i < listeners1.length; i++) {
+ assertSame(proxy, listeners1[i]);
+ }
+ }
+
+ /*
+ * add two different listeners
+ */
+ public void testAddVetoableChangeListenerVetoableChangeListener_TwoDifferent() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ VetoableChangeListener proxy2 = EventHandler.create(
+ VetoableChangeListener.class, source, "getText");
+ support.addVetoableChangeListener(proxy);
+ support.addVetoableChangeListener(proxy2);
+
+ assertTrue(support.hasListeners("label"));
+ assertTrue(support.hasListeners("text"));
+
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners("label");
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(2, listeners1.length);
+ assertEquals(0, listeners2.length);
+ assertEquals(0, listeners3.length);
+ for (int i = 0; i < listeners1.length; i++) {
+ assertTrue((proxy == listeners1[i]) || (proxy2 == listeners1[i]));
+ }
+ }
+
+ /*
+ * add a VetoableChangeListenerProxy
+ */
+ public void testAddVetoableChangeListenerVetoableChangeListener_Proxy() {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+
+ proxy = new MockVetoableChangeListener();
+ String propertyName = "label";
+
+ VetoableChangeListenerProxy listenerProxy = new VetoableChangeListenerProxy(
+ propertyName, proxy);
+
+ support.addVetoableChangeListener(listenerProxy);
+
+ assertTrue(support.hasListeners(propertyName));
+ assertFalse(support.hasListeners("text"));
+ {
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+ VetoableChangeListener[] listeners3 = support
+ .getVetoableChangeListeners("text");
+
+ assertEquals(0, listeners3.length);
+ assertEquals(1, listeners1.length);
+ assertEquals(1, listeners2.length);
+
+ assertSame(proxy, listeners2[0]);
+ VetoableChangeListenerProxy wrappers = (VetoableChangeListenerProxy) listeners1[0];
+ assertSame(proxy, wrappers.getListener());
+ assertEquals(propertyName, wrappers.getPropertyName());
+ }
+ // add test for remove proxy
+ support.removeVetoableChangeListener(listenerProxy);
+ {
+ VetoableChangeListener[] listeners1 = support
+ .getVetoableChangeListeners();
+ VetoableChangeListener[] listeners2 = support
+ .getVetoableChangeListeners(propertyName);
+ assertEquals(0, listeners1.length);
+ assertEquals(0, listeners2.length);
+ }
+
+ }
+
+ /*
+ * Class under test for void fireVetoableChange(PropertyChangeEvent)
+ */
+ public void testFireVetoableChangePropertyChangeEvent()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
+ "Label: old", "Label: new");
+ support.fireVetoableChange(event);
+
+ assertEquals("called", source.getText());
+ }
+
+ public void testFireVetoableChangePropertyChangeEvent_Veto()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ MockVetoListener normal1 = new MockVetoListener(false, "Norm1");
+ support.addVetoableChangeListener(normal1);
+
+ MockVetoListener veto1 = new MockVetoListener(true, "Veto1");
+ support.addVetoableChangeListener(veto1);
+
+ MockVetoListener normal2 = new MockVetoListener(false, "Norm2");
+ support.addVetoableChangeListener(normal2);
+
+ MockVetoListener veto2 = new MockVetoListener(true, "Veto2");
+ support.addVetoableChangeListener(veto2);
+
+ PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
+ "1", "5");
+ try {
+ support.fireVetoableChange(event);
+ } catch (PropertyVetoException e) {
+
+ }
+
+ assertEquals(4, support.getVetoableChangeListeners().length);
+
+ // Check the calling status of the first listener
+ {
+ ArrayList oldValues = normal1.getOldValues();
+ assertEquals(2, oldValues.size());
+ assertEquals("1", oldValues.get(0));
+ assertEquals("5", oldValues.get(1));
+
+ ArrayList newValues = normal1.getNewValues();
+ assertEquals(2, newValues.size());
+ assertEquals("5", newValues.get(0));
+ assertEquals("1", newValues.get(1));
+ }
+
+ // Check the status of the second (Veto) listeners
+ {
+ ArrayList oldValues = veto1.getOldValues();
+ assertEquals(2, oldValues.size());
+ assertEquals("1", oldValues.get(0));
+ assertEquals("5", oldValues.get(1));
+
+ ArrayList newValues = veto1.getNewValues();
+ assertEquals(2, newValues.size());
+ assertEquals("5", newValues.get(0));
+ assertEquals("1", newValues.get(1));
+ }
+
+ // Check the status of the third listeners
+ {
+ ArrayList oldValues = normal2.getOldValues();
+ assertEquals(1, oldValues.size());
+ assertEquals("5", oldValues.get(0));
+
+ ArrayList newValues = normal2.getNewValues();
+ assertEquals(1, newValues.size());
+ assertEquals("1", newValues.get(0));
+ }
+
+ // Check the status of the fourth (Veto) listeners
+ {
+ ArrayList oldValues = veto2.getOldValues();
+ assertEquals(1, oldValues.size());
+ assertEquals("5", oldValues.get(0));
+
+ ArrayList newValues = veto2.getNewValues();
+ assertEquals(1, newValues.size());
+ assertEquals("1", newValues.get(0));
+ }
+ }
+
+ /*
+ * fire a null event
+ */
+ public void testFireVetoableChangePropertyChangeEvent_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ try {
+ support.fireVetoableChange(null);
+ fail("Should throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ /*
+ * register for one property
+ */
+ public void testFireVetoableChangePropertyChangeEvent_property()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+
+ String propertyName = "label";
+ support.addVetoableChangeListener(propertyName, proxy);
+ PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
+ "Label: old", "Label: new");
+ support.fireVetoableChange(event);
+
+ assertEquals("called", source.getText());
+ }
+
+ public void testFireVetoableChangePropertyChangeEvent_property_invalid()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+
+ String propertyName = "label_invalid";
+ support.addVetoableChangeListener(propertyName, proxy);
+ PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
+ "Label: old", "Label: new");
+ support.fireVetoableChange(event);
+
+ assertEquals("text.default", source.getText());
+ }
+
+ /*
+ * there are two same listeners, and another different listener.
+ */
+ public void testFireVetoableChangePropertyChangeEvent_DuplicateListener()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "increaseTop");
+ VetoableChangeListener proxy2 = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+
+ support.addVetoableChangeListener(proxy);
+ support.addVetoableChangeListener(proxy);
+ support.addVetoableChangeListener(proxy2);
+
+ PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
+ "Label: old", "Label: new");
+ support.fireVetoableChange(event);
+ assertEquals(2, source.getTop());
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * listener is null
+ */
+ public void testFireVetoableChangePropertyChangeEvent_listener_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ support.addVetoableChangeListener(null);
+ PropertyChangeEvent event = new PropertyChangeEvent(source, "label",
+ "Label: old", "Label: new");
+ try {
+ support.fireVetoableChange(event);
+ fail("Should throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ /*
+ * Class under test for void fireVetoableChange(String, boolean, boolean)
+ */
+ public void testFireVetoableChangeStringbooleanboolean()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ support.fireVetoableChange("label", true, false);
+
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * register a null listener
+ */
+ public void testFireVetoableChangeStringbooleanboolean_listener_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ support.addVetoableChangeListener(null);
+ try {
+ support.fireVetoableChange("label", true, false);
+ fail("Should throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ /*
+ * register listener for property "label".
+ */
+ public void testFireVetoableChangeStringbooleanboolean_property()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener("label", proxy);
+ support.fireVetoableChange("label", true, false);
+
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * register a null listener
+ */
+ public void testFireVetoableChangeStringbooleanboolean_listener_null_property()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ EventHandler.create(VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener("label", null);
+ try {
+ support.fireVetoableChange("label", true, false);
+ fail("Should throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ /*
+ * two different listeners registered for all
+ */
+ public void testFireVetoableChangeStringbooleanboolean_twoListeners()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ VetoableChangeListener proxy2 = EventHandler.create(
+ VetoableChangeListener.class, source, "increaseTop");
+ support.addVetoableChangeListener(proxy);
+ support.addVetoableChangeListener(proxy2);
+
+ support.fireVetoableChange("label", true, false);
+
+ assertEquals("called", source.getText());
+ assertEquals(1, source.getTop());
+ }
+
+ /*
+ * two different listeners registered for property "label"
+ */
+ public void testFireVetoableChangeStringbooleanboolean_property_twoListeners()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ VetoableChangeListener proxy2 = EventHandler.create(
+ VetoableChangeListener.class, source, "increaseTop");
+ support.addVetoableChangeListener("label", proxy);
+ support.addVetoableChangeListener("label", proxy2);
+
+ support.fireVetoableChange("label", true, false);
+
+ assertEquals("called", source.getText());
+ assertEquals(1, source.getTop());
+ }
+
+ /*
+ * null propertyname
+ */
+ public void testFireVetoableChangeStringbooleanboolean_Property_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "label", "source.text");
+ support.addVetoableChangeListener(proxy);
+ support.fireVetoableChange(null, true, false);
+ assertEquals(source.getText(), source.getLabel());
+ }
+
+ /*
+ * register listener to label.
+ */
+ public void testFireVetoableChangeStringbooleanboolean_listener_Property_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "label", "source.text");
+ support.addVetoableChangeListener("label", proxy);
+ support.fireVetoableChange(null, true, false);
+ assertEquals("label.default", source.getLabel());
+ }
+
+ /*
+ * register a null listener
+ */
+ public void testFireVetoableChangeStringbooleanboolean_listener_Null_Property_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "label", "source.text");
+ support.addVetoableChangeListener("label", proxy);
+ support.fireVetoableChange(null, true, false);
+ assertEquals("label.default", source.getLabel());
+ }
+
+ /*
+ * invalid propertyname
+ */
+ public void testFireVetoableChangeStringbooleanboolean_Property_invalid()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "label", "source.text");
+ support.addVetoableChangeListener(proxy);
+ String newText = "new Text value";
+ source.setText(newText);
+
+ support.fireVetoableChange("label_invalid", true, false);
+ assertEquals(newText, source.getLabel());
+ }
+
+ /*
+ * register listener for lablel property
+ */
+ public void testFireVetoableChangeStringbooleanboolean_listener_Property_invalid()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "label", "source.text");
+ support.addVetoableChangeListener("label", proxy);
+ String newText = "new Text value";
+ source.setText(newText);
+
+ support.fireVetoableChange("text", true, false);
+ assertEquals("label.default", source.getLabel());
+
+ support.fireVetoableChange("label_invalid", true, false);
+ assertEquals("label.default", source.getLabel());
+
+ support.fireVetoableChange("label", true, false);
+ assertEquals(newText, source.getLabel());
+ }
+
+ /*
+ * oldvalue==newValue
+ */
+ public void testFireVetoableChangeStringbooleanboolean_SameValue()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+
+ support.fireVetoableChange("label", true, true);
+ assertEquals("text.default", source.getText());
+ }
+
+ /*
+ * Class under test for void fireVetoableChange(String, int, int)
+ *
+ * register listener for all
+ */
+ public void testFireVetoableChangeStringintint()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ support.fireVetoableChange("label", 1, 2);
+
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * Propertyname is null register listener for all
+ */
+ public void testFireVetoableChangeStringintint_property_null()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ support.fireVetoableChange(null, 1, 2);
+
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * property name is invalid register listener for all
+ */
+ public void testFireVetoableChangeStringintint_property_Invalid()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ support.fireVetoableChange("label_invalide", 1, 2);
+
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * oldvalue=newVlaue register listener for all
+ */
+ public void testFireVetoableChangeStringintint_SameValue()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener(proxy);
+ support.fireVetoableChange("label", 1, 1);
+
+ assertEquals("text.default", source.getText());
+ }
+
+ /*
+ * Class under test for void fireVetoableChange(String, int, int)
+ *
+ * register listener for one property - "label"
+ */
+ public void testFireVetoableChangeStringintint_listener()
+ throws PropertyVetoException {
+ MockSource source = new MockSource();
+ VetoableChangeSupport support = new VetoableChangeSupport(source);
+
+ VetoableChangeListener proxy = EventHandler.create(
+ VetoableChangeListener.class, source, "setText");
+ support.addVetoableChangeListener("label", proxy);
+ support.fireVetoableChange("label", 1, 2);
+ assertEquals("called", source.getText());
+ }
+
+ /*
+ * Propertyname is null register listener for one property - "label"
+ */
+ public void testFireVetoableChangeStringintint_listener_property_null()
[... 1178 lines stripped ...]