FIXED - bug 245183: [Databinding] ObservableList could do a == check before delegating to the wrapped list
https://bugs.eclipse.org/bugs/show_bug.cgi?id=245183
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java
index 7d4ff06..c923d28 100644
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java
+++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java
@@ -80,6 +80,21 @@
assertTrue(decorator.equals(decorator));
}
+ public void testEquals_SameClassDelegatesToDelegateObservables() {
+ IObservableList delegate = new WritableList() {
+ public boolean equals(Object o) {
+ return o == this;
+ }
+ };
+ Bean bean = new Bean();
+ decorator = new BeanObservableListDecorator(delegate, new WritableValue(
+ bean, Object.class), propertyDescriptor);
+ BeanObservableListDecorator otherDecorator = new BeanObservableListDecorator(
+ delegate, new WritableValue(bean, Object.class),
+ propertyDescriptor);
+ assertTrue(decorator.equals(otherDecorator));
+ }
+
public static Test suite() {
TestSuite suite = new TestSuite(BeanObservableListDecoratorTest.class.getName());
suite.addTestSuite(BeanObservableListDecoratorTest.class);
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableMapDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableMapDecoratorTest.java
index a846107..514c29a 100644
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableMapDecoratorTest.java
+++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableMapDecoratorTest.java
@@ -70,4 +70,18 @@
new Bean(), Object.class), propertyDescriptor);
assertTrue(decorator.equals(decorator));
}
+
+ public void testEquals_SameClassDelegatesToDelegateObservables() {
+ IObservableMap delegate = new WritableMap() {
+ public boolean equals(Object o) {
+ return o == this;
+ }
+ };
+ Bean bean = new Bean();
+ decorator = new BeanObservableMapDecorator(delegate, bean,
+ propertyDescriptor);
+ BeanObservableMapDecorator otherDecorator = new BeanObservableMapDecorator(
+ delegate, bean, propertyDescriptor);
+ assertTrue(decorator.equals(otherDecorator));
+ }
}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java
index 72d0264..924b139 100644
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java
+++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java
@@ -72,4 +72,18 @@
new Bean(), Object.class), propertyDescriptor);
assertTrue(decorator.equals(decorator));
}
+
+ public void testEquals_SameClassDelegatesToDelegateObservables() {
+ IObservableSet delegate = new WritableSet() {
+ public boolean equals(Object o) {
+ return o == this;
+ }
+ };
+ Bean bean = new Bean();
+ decorator = new BeanObservableSetDecorator(delegate, bean,
+ propertyDescriptor);
+ BeanObservableSetDecorator otherDecorator = new BeanObservableSetDecorator(
+ delegate, bean, propertyDescriptor);
+ assertTrue(decorator.equals(otherDecorator));
+ }
}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java
index e1969da..718688d 100644
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java
+++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java
@@ -72,4 +72,18 @@
decorator = new BeanObservableValueDecorator(delegate, new WritableValue(bean, Object.class), propertyDescriptor);
assertTrue(decorator.equals(decorator));
}
+
+ public void testEquals_SameClassDelegatesToDelegateObservables() {
+ IObservableValue delegate = new WritableValue() {
+ public boolean equals(Object o) {
+ return o == this;
+ }
+ };
+ decorator = new BeanObservableValueDecorator(delegate,
+ new WritableValue(bean, Object.class), propertyDescriptor);
+ BeanObservableValueDecorator otherDecorator = new BeanObservableValueDecorator(
+ delegate, new WritableValue(bean, Object.class),
+ propertyDescriptor);
+ assertTrue(decorator.equals(otherDecorator));
+ }
}