diff options
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener')
6 files changed, 0 insertions, 1546 deletions
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java deleted file mode 100644 index 084a9b8ab3..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.utility.tests.internal.model.listener; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class JptUtilityModelListenerTests { - - public static Test suite() { - TestSuite suite = new TestSuite(JptUtilityModelListenerTests.class.getPackage().getName()); - - suite.addTestSuite(ReflectiveCollectionChangeListenerTests.class); - suite.addTestSuite(ReflectiveListChangeListenerTests.class); - suite.addTestSuite(ReflectivePropertyChangeListenerTests.class); - suite.addTestSuite(ReflectiveStateChangeListenerTests.class); - suite.addTestSuite(ReflectiveTreeChangeListenerTests.class); - - return suite; - } - - private JptUtilityModelListenerTests() { - super(); - throw new UnsupportedOperationException(); - } - -} diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java deleted file mode 100644 index 43adcd065e..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java +++ /dev/null @@ -1,331 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.utility.internal.ReflectionTools; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.model.event.CollectionAddEvent; -import org.eclipse.jpt.utility.model.event.CollectionChangeEvent; -import org.eclipse.jpt.utility.model.event.CollectionClearEvent; -import org.eclipse.jpt.utility.model.event.CollectionEvent; -import org.eclipse.jpt.utility.model.event.CollectionRemoveEvent; -import org.eclipse.jpt.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveCollectionChangeListenerTests extends TestCase { - - public ReflectiveCollectionChangeListenerTests(String name) { - super(name); - } - - private CollectionChangeListener buildZeroArgumentListener(Object target) { - return ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedZeroArgument", "itemRemovedZeroArgument", "collectionClearedZeroArgument", "collectionChangedZeroArgument"); - } - - private CollectionChangeListener buildSingleArgumentListener(Object target) { - return ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedSingleArgument", "itemRemovedSingleArgument", "collectionClearedSingleArgument", "collectionChangedSingleArgument"); - } - - public void testItemAddedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.addString(string); - assertTrue(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testItemAddedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.addString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertTrue(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testItemRemovedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertTrue(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testItemRemovedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertTrue(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionClearedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertTrue(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionClearedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertTrue(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionChangedZeroArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target)); - testModel.replaceStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertTrue(target.collectionChangedZeroArgumentFlag); - assertFalse(target.collectionChangedSingleArgumentFlag); - } - - public void testCollectionChangedSingleArgumentNamedCollection() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target)); - testModel.replaceStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.collectionClearedZeroArgumentFlag); - assertFalse(target.collectionClearedSingleArgumentFlag); - assertFalse(target.collectionChangedZeroArgumentFlag); - assertTrue(target.collectionChangedSingleArgumentFlag); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - boolean exCaught = false; - try { - CollectionChangeListener listener = ReflectiveChangeListener.buildCollectionChangeListener(target, "collectionChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - Method method = ReflectionTools.getMethod(target, "collectionChangedDoubleArgument", new Class[] {CollectionChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - CollectionChangeListener listener = ReflectiveChangeListener.buildCollectionChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string); - // build a COLLECTION change listener and hack it so we - // can add it as a LIST change listener - Object listener = ReflectiveChangeListener.buildCollectionChangeListener(target, "collectionEventSingleArgument"); - testModel.addListChangeListener("bogus list", (ListChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeList(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private Collection<String> strings = new ArrayList<String>(); - public static final String STRINGS_COLLECTION = "strings"; - TestModel() { - super(); - } - Iterator<String> strings() { - return new CloneIterator<String>(this.strings) { - @Override - protected void remove(String s) { - TestModel.this.removeString(s); - } - }; - } - void addString(String string) { - this.addItemToCollection(string, this.strings, STRINGS_COLLECTION); - } - void removeString(String string) { - this.removeItemFromCollection(string, this.strings, STRINGS_COLLECTION); - } - void clearStrings() { - this.clearCollection(this.strings, STRINGS_COLLECTION); - } - void replaceStrings(String[] newStrings) { - this.strings.clear(); - CollectionTools.addAll(this.strings, newStrings); - this.fireCollectionChanged(STRINGS_COLLECTION, this.strings); - } - void changeList() { - this.fireListChanged("bogus list", Collections.emptyList()); - } - } - - class Target { - TestModel testModel; - String collectionName; - String string; - boolean itemAddedZeroArgumentFlag = false; - boolean itemAddedSingleArgumentFlag = false; - boolean itemRemovedZeroArgumentFlag = false; - boolean itemRemovedSingleArgumentFlag = false; - boolean collectionClearedZeroArgumentFlag = false; - boolean collectionClearedSingleArgumentFlag = false; - boolean collectionChangedZeroArgumentFlag = false; - boolean collectionChangedSingleArgumentFlag = false; - boolean collectionEventSingleArgumentFlag = false; - Target(TestModel testModel, String collectionName, String string) { - super(); - this.testModel = testModel; - this.collectionName = collectionName; - this.string = string; - } - void itemAddedZeroArgument() { - this.itemAddedZeroArgumentFlag = true; - } - void itemAddedSingleArgument(CollectionAddEvent e) { - this.itemAddedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - assertEquals(this.string, e.getItems().iterator().next()); - } - void itemRemovedZeroArgument() { - this.itemRemovedZeroArgumentFlag = true; - } - void itemRemovedSingleArgument(CollectionRemoveEvent e) { - this.itemRemovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - assertEquals(this.string, e.getItems().iterator().next()); - } - void collectionClearedZeroArgument() { - this.collectionClearedZeroArgumentFlag = true; - } - void collectionClearedSingleArgument(CollectionClearEvent e) { - this.collectionClearedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - } - void collectionChangedZeroArgument() { - this.collectionChangedZeroArgumentFlag = true; - } - void collectionChangedSingleArgument(CollectionChangeEvent e) { - this.collectionChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - } - void collectionEventSingleArgument(CollectionEvent e) { - this.collectionEventSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.collectionName, e.getCollectionName()); - } - void collectionChangedDoubleArgument(CollectionChangeEvent e, Object o) { - fail("bogus event: " + e + " object: " + o); - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java deleted file mode 100644 index 8a3965d1ae..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java +++ /dev/null @@ -1,498 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.ListIterator; - -import junit.framework.TestCase; - -import org.eclipse.jpt.utility.internal.ReflectionTools; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.model.event.ListAddEvent; -import org.eclipse.jpt.utility.model.event.ListChangeEvent; -import org.eclipse.jpt.utility.model.event.ListClearEvent; -import org.eclipse.jpt.utility.model.event.ListEvent; -import org.eclipse.jpt.utility.model.event.ListMoveEvent; -import org.eclipse.jpt.utility.model.event.ListRemoveEvent; -import org.eclipse.jpt.utility.model.event.ListReplaceEvent; -import org.eclipse.jpt.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.utility.model.listener.ListChangeListener; -import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveListChangeListenerTests extends TestCase { - - public ReflectiveListChangeListenerTests(String name) { - super(name); - } - - private ListChangeListener buildZeroArgumentListener(Object target) { - return ReflectiveChangeListener.buildListChangeListener(target, "itemAddedZeroArgument", "itemRemovedZeroArgument", "itemReplacedZeroArgument", "itemMovedZeroArgument", "listClearedZeroArgument", "listChangedZeroArgument"); - } - - private ListChangeListener buildSingleArgumentListener(Object target) { - return ReflectiveChangeListener.buildListChangeListener(target, "itemAddedSingleArgument", "itemRemovedSingleArgument", "itemReplacedSingleArgument", "itemMovedSingleArgument", "listClearedSingleArgument", "listChangedSingleArgument"); - } - - public void testItemAddedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.addString(string); - assertTrue(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemAddedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.addString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertTrue(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemRemovedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertTrue(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemRemovedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.removeString(string); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertTrue(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemReplacedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String oldString = "foo"; - String newString = "bar"; - testModel.addString(oldString); - Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.replaceString(oldString, newString); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertTrue(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemReplacedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String oldString = "foo"; - String newString = "bar"; - testModel.addString(oldString); - Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.replaceString(oldString, newString); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertTrue(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemMovedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - testModel.addString("zero"); - testModel.addString("one"); - testModel.addString("two"); - testModel.addString("three"); - Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.moveString(0, 2); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertTrue(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testItemMovedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - testModel.addString("zero"); - testModel.addString("one"); - testModel.addString("two"); - testModel.addString("three"); - Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.moveString(0, 2); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertTrue(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListClearedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertTrue(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListClearedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.clearStrings(); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertTrue(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListChangedZeroArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target)); - testModel.replaceAllStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertTrue(target.listChangedZeroArgumentFlag); - assertFalse(target.listChangedSingleArgumentFlag); - } - - public void testListChangedSingleArgumentNamedList() { - TestModel testModel = new TestModel(); - String string = "foo"; - testModel.addString(string); - Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1); - testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target)); - testModel.replaceAllStrings(new String[] {"bar", "baz"}); - assertFalse(target.itemAddedZeroArgumentFlag); - assertFalse(target.itemAddedSingleArgumentFlag); - assertFalse(target.itemRemovedZeroArgumentFlag); - assertFalse(target.itemRemovedSingleArgumentFlag); - assertFalse(target.itemReplacedZeroArgumentFlag); - assertFalse(target.itemReplacedSingleArgumentFlag); - assertFalse(target.itemMovedZeroArgumentFlag); - assertFalse(target.itemMovedSingleArgumentFlag); - assertFalse(target.listClearedZeroArgumentFlag); - assertFalse(target.listClearedSingleArgumentFlag); - assertFalse(target.listChangedZeroArgumentFlag); - assertTrue(target.listChangedSingleArgumentFlag); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - boolean exCaught = false; - try { - ListChangeListener listener = ReflectiveChangeListener.buildListChangeListener(target, "listChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - Method method = ReflectionTools.getMethod(target, "listChangedDoubleArgument", new Class[] {ListChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - ListChangeListener listener = ReflectiveChangeListener.buildListChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(); - String string = "foo"; - Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0); - // build a LIST change listener and hack it so we - // can add it as a COLLECTION change listener - Object listener = ReflectiveChangeListener.buildListChangeListener(target, "listEventSingleArgument"); - testModel.addCollectionChangeListener("bogus collection", (CollectionChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeCollection(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private List<String> strings = new ArrayList<String>(); - public static final String STRINGS_LIST = "strings"; - TestModel() { - super(); - } - ListIterator<String> strings() { - return new CloneListIterator<String>(this.strings); - } - void addString(String string) { - this.addItemToList(string, this.strings, STRINGS_LIST); - } - void removeString(String string) { - this.removeItemFromList(this.strings.indexOf(string), this.strings, STRINGS_LIST); - } - void replaceString(String oldString, String newString) { - this.setItemInList(this.strings.indexOf(oldString), newString, this.strings, STRINGS_LIST); - } - void moveString(int targetIndex, int sourceIndex) { - this.moveItemInList(targetIndex, sourceIndex, this.strings, STRINGS_LIST); - } - void clearStrings() { - this.clearList(this.strings, STRINGS_LIST); - } - void replaceAllStrings(String[] newStrings) { - this.strings.clear(); - CollectionTools.addAll(this.strings, newStrings); - this.fireListChanged(STRINGS_LIST, this.strings); - } - void changeCollection() { - this.fireCollectionChanged("bogus collection", Collections.emptySet()); - } - } - - class Target { - TestModel testModel; - String listName; - String string; - int index; - String replacedString; - int sourceIndex; - boolean itemAddedZeroArgumentFlag = false; - boolean itemAddedSingleArgumentFlag = false; - boolean itemRemovedZeroArgumentFlag = false; - boolean itemRemovedSingleArgumentFlag = false; - boolean itemReplacedZeroArgumentFlag = false; - boolean itemReplacedSingleArgumentFlag = false; - boolean itemMovedZeroArgumentFlag = false; - boolean itemMovedSingleArgumentFlag = false; - boolean listClearedZeroArgumentFlag = false; - boolean listClearedSingleArgumentFlag = false; - boolean listChangedZeroArgumentFlag = false; - boolean listChangedSingleArgumentFlag = false; - boolean listEventSingleArgumentFlag = false; - Target(TestModel testModel, String listName, String string, int index) { - super(); - this.testModel = testModel; - this.listName = listName; - this.string = string; - this.index = index; - } - Target(TestModel testModel, String listName, String string, int index, String replacedString) { - this(testModel, listName, string, index); - this.replacedString = replacedString; - } - Target(TestModel testModel, String listName, int targetIndex, int sourceIndex) { - super(); - this.testModel = testModel; - this.listName = listName; - this.index = targetIndex; - this.sourceIndex = sourceIndex; - } - void itemAddedZeroArgument() { - this.itemAddedZeroArgumentFlag = true; - } - void itemAddedSingleArgument(ListAddEvent e) { - this.itemAddedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.string, e.getItems().iterator().next()); - assertEquals(this.index, e.getIndex()); - } - void itemRemovedZeroArgument() { - this.itemRemovedZeroArgumentFlag = true; - } - void itemRemovedSingleArgument(ListRemoveEvent e) { - this.itemRemovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.string, e.getItems().iterator().next()); - assertEquals(this.index, e.getIndex()); - } - void itemReplacedZeroArgument() { - this.itemReplacedZeroArgumentFlag = true; - } - void itemReplacedSingleArgument(ListReplaceEvent e) { - this.itemReplacedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.string, e.getNewItems().iterator().next()); - assertEquals(this.replacedString, e.getOldItems().iterator().next()); - assertEquals(this.index, e.getIndex()); - } - void itemMovedZeroArgument() { - this.itemMovedZeroArgumentFlag = true; - } - void itemMovedSingleArgument(ListMoveEvent e) { - this.itemMovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - assertEquals(this.index, e.getTargetIndex()); - assertEquals(this.sourceIndex, e.getSourceIndex()); - } - void listChangedZeroArgument() { - this.listChangedZeroArgumentFlag = true; - } - void listClearedSingleArgument(ListClearEvent e) { - this.listClearedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - } - void listClearedZeroArgument() { - this.listClearedZeroArgumentFlag = true; - } - void listChangedSingleArgument(ListChangeEvent e) { - this.listChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - } - void listChangedDoubleArgument(ListChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - void listEventSingleArgument(ListEvent e) { - this.listEventSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.listName, e.getListName()); - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java deleted file mode 100644 index 8ca4f3a10e..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java +++ /dev/null @@ -1,176 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import junit.framework.TestCase; -import org.eclipse.jpt.utility.internal.ReflectionTools; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener; -import org.eclipse.jpt.utility.model.listener.StateChangeListener; - -@SuppressWarnings("nls") -public class ReflectivePropertyChangeListenerTests extends TestCase { - - public ReflectivePropertyChangeListenerTests(String name) { - super(name); - } - - public void testZeroArgumentNamedProperty() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedZeroArgument")); - testModel.setValue(99); - assertTrue(target.zeroArgumentFlag); - assertFalse(target.singleArgumentFlag); - } - - /** - * test method that has more general method parameter type - */ - public void testSingleArgument2() throws Exception { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - Method method = ReflectionTools.getMethod(target, "propertyChangedSingleArgument2", new Class[] {Object.class}); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, method)); - testModel.setValue(99); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - public void testSingleArgumentNamedProperty() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument")); - testModel.setValue(99); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - /** - * test method that has more general method parameter type - */ - public void testSingleArgumentNamedProperty2() throws Exception { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - Method method = ReflectionTools.getMethod(target, "propertyChangedSingleArgument2", new Class[] {Object.class}); - testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, method)); - testModel.setValue(99); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - // build a PROPERTY change listener and hack it so we - // can add it as a STATE change listener - Object listener = ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument"); - testModel.addStateChangeListener((StateChangeListener) listener); - - boolean exCaught = false; - try { - testModel.setValue(99); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - boolean exCaught = false; - try { - PropertyChangeListener listener = ReflectiveChangeListener.buildPropertyChangeListener(target, "stateChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(7); - Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99); - Method method = ReflectionTools.getMethod(target, "propertyChangedDoubleArgument", new Class[] {PropertyChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - PropertyChangeListener listener = ReflectiveChangeListener.buildPropertyChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private int value = 0; - public static final String VALUE_PROPERTY = "value"; - TestModel(int value) { - super(); - this.value = value; - } - void setValue(int value) { - int old = this.value; - this.value = value; - this.firePropertyChanged(VALUE_PROPERTY, old, value); - if (old != value) { - this.fireStateChanged(); - } - } - } - - class Target { - TestModel testModel; - String propertyName; - Object oldValue; - Object newValue; - boolean zeroArgumentFlag = false; - boolean singleArgumentFlag = false; - Target(TestModel testModel, String propertyName, int oldValue, int newValue) { - super(); - this.testModel = testModel; - this.propertyName = propertyName; - this.oldValue = new Integer(oldValue); - this.newValue = new Integer(newValue); - } - void propertyChangedZeroArgument() { - this.zeroArgumentFlag = true; - } - void propertyChangedSingleArgument(PropertyChangeEvent e) { - this.singleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.propertyName, e.getPropertyName()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - } - void propertyChangedSingleArgument2(Object o) { - PropertyChangeEvent e = (PropertyChangeEvent) o; - this.singleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.propertyName, e.getPropertyName()); - assertEquals(this.oldValue, e.getOldValue()); - assertEquals(this.newValue, e.getNewValue()); - } - void propertyChangedDoubleArgument(PropertyChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java deleted file mode 100644 index 28aed8f49f..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.utility.tests.internal.model.listener; - -import java.lang.reflect.Method; -import junit.framework.TestCase; -import org.eclipse.jpt.utility.internal.ReflectionTools; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.model.event.StateChangeEvent; -import org.eclipse.jpt.utility.model.listener.PropertyChangeListener; -import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener; -import org.eclipse.jpt.utility.model.listener.StateChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveStateChangeListenerTests extends TestCase { - - public ReflectiveStateChangeListenerTests(String name) { - super(name); - } - - public void testZeroArgument() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedZeroArgument")); - testModel.changeState(); - assertTrue(target.zeroArgumentFlag); - assertFalse(target.singleArgumentFlag); - } - - public void testSingleArgument() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedSingleArgument")); - testModel.changeState(); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - /** - * test method that has more general method parameter type - */ - public void testSingleArgument2() throws Exception { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - Method method = ReflectionTools.getMethod(target, "stateChangedSingleArgument2", new Class[] {Object.class}); - testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, method)); - testModel.changeState(); - assertFalse(target.zeroArgumentFlag); - assertTrue(target.singleArgumentFlag); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - // build a STATE change listener and hack it so we - // can add it as a PROPERTY change listener - Object listener = ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedSingleArgument"); - testModel.addPropertyChangeListener("value", (PropertyChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeProperty(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument1() { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - boolean exCaught = false; - try { - StateChangeListener listener = ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedDoubleArgument"); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getCause().getClass() == NoSuchMethodException.class) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - public void testBogusDoubleArgument2() throws Exception { - TestModel testModel = new TestModel(); - Target target = new Target(testModel); - Method method = ReflectionTools.getMethod(target, "stateChangedDoubleArgument", new Class[] {StateChangeEvent.class, Object.class}); - boolean exCaught = false; - try { - StateChangeListener listener = ReflectiveChangeListener.buildStateChangeListener(target, method); - fail("bogus listener: " + listener); - } catch (RuntimeException ex) { - if (ex.getMessage().equals(method.toString())) { - exCaught = true; - } - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - TestModel() { - super(); - } - void changeState() { - this.fireStateChanged(); - } - void changeProperty() { - this.firePropertyChanged("value", 55, 42); - } - } - - class Target { - TestModel testModel; - boolean zeroArgumentFlag = false; - boolean singleArgumentFlag = false; - Target(TestModel testModel) { - super(); - this.testModel = testModel; - } - void stateChangedZeroArgument() { - this.zeroArgumentFlag = true; - } - void stateChangedSingleArgument(StateChangeEvent e) { - this.singleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - } - void stateChangedSingleArgument2(Object e) { - this.singleArgumentFlag = true; - assertSame(this.testModel, ((StateChangeEvent) e).getSource()); - } - void stateChangedDoubleArgument(StateChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - } - -} diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java deleted file mode 100644 index 52581adaa4..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java +++ /dev/null @@ -1,362 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.utility.tests.internal.model.listener; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import junit.framework.TestCase; - -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.model.event.TreeAddEvent; -import org.eclipse.jpt.utility.model.event.TreeChangeEvent; -import org.eclipse.jpt.utility.model.event.TreeClearEvent; -import org.eclipse.jpt.utility.model.event.TreeEvent; -import org.eclipse.jpt.utility.model.event.TreeRemoveEvent; -import org.eclipse.jpt.utility.model.listener.CollectionChangeListener; -import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener; -import org.eclipse.jpt.utility.model.listener.TreeChangeListener; - -@SuppressWarnings("nls") -public class ReflectiveTreeChangeListenerTests extends TestCase { - - public ReflectiveTreeChangeListenerTests(String name) { - super(name); - } - - private TreeChangeListener buildZeroArgumentListener(Object target) { - return ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedZeroArgument", "nodeRemovedZeroArgument", "treeClearedZeroArgument", "treeChangedZeroArgument"); - } - - private TreeChangeListener buildSingleArgumentListener(Object target) { - return ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedSingleArgument", "nodeRemovedSingleArgument", "treeClearedSingleArgument", "treeChangedSingleArgument"); - } - - public void testNodeAddedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.addNode("root", "child"); - assertTrue(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testNodeAddedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.addNode("root", "child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertTrue(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testNodeRemovedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.removeNode("child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertTrue(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testNodeRemovedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.removeNode("child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertTrue(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeClearedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - testModel.addNode("child", "grandchild"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.clearTree(); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertTrue(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeClearedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - testModel.addNode("child", "grandchild"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.clearTree(); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertTrue(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeChangedZeroArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target)); - testModel.replaceNode("child", "another child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertTrue(target.treeChangedZeroArgumentFlag); - assertFalse(target.treeChangedSingleArgumentFlag); - } - - public void testTreeChangedSingleArgumentNamedTree() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"}); - testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target)); - testModel.replaceNode("child", "another child"); - assertFalse(target.nodeAddedZeroArgumentFlag); - assertFalse(target.nodeAddedSingleArgumentFlag); - assertFalse(target.nodeRemovedZeroArgumentFlag); - assertFalse(target.nodeRemovedSingleArgumentFlag); - assertFalse(target.treeClearedZeroArgumentFlag); - assertFalse(target.treeClearedSingleArgumentFlag); - assertFalse(target.treeChangedZeroArgumentFlag); - assertTrue(target.treeChangedSingleArgumentFlag); - } - - public void testListenerMismatch() { - TestModel testModel = new TestModel("root"); - testModel.addNode("root", "child"); - Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"}); - // build a TREE change listener and hack it so we - // can add it as a COLLECTION change listener - Object listener = ReflectiveChangeListener.buildTreeChangeListener(target, "treeEventSingleArgument"); - testModel.addCollectionChangeListener("bogus collection", (CollectionChangeListener) listener); - - boolean exCaught = false; - try { - testModel.changeCollection(); - fail("listener mismatch: " + listener); - } catch (IllegalArgumentException ex) { - exCaught = true; - } - assertTrue(exCaught); - } - - - class TestModel extends AbstractModel { - private final String root; - private Map<String, Collection<String>> childrenLists = new HashMap<String, Collection<String>>(); - private Map<String, String> parents = new HashMap<String, String>(); - public static final String STRINGS_TREE = "strings"; - TestModel(String root) { - super(); - if (root == null) { - throw new NullPointerException(); - } - this.root = root; - this.childrenLists.put(root, new ArrayList<String>()); - this.parents.put(root, null); - } - String getRoot() { - return this.root; - } - private List<String> path(String node) { - String temp = node; - List<String> reversePath = new ArrayList<String>(); - do { - reversePath.add(temp); - temp = this.parents.get(temp); - } while (temp != null); - return CollectionTools.reverse(reversePath); - } - Iterator<String> strings() { - return new CloneIterator<String>(this.childrenLists.keySet()) { - @Override - protected void remove(String s) { - TestModel.this.removeNode(s); - } - }; - } - void addNode(String parent, String child) { - if ((parent == null) || (child == null)) { - throw new NullPointerException(); - } - - Collection<String> children = this.childrenLists.get(parent); - if (children == null) { - throw new IllegalStateException("cannot add a child to a non-existent parent"); - } - - if (this.childrenLists.get(child) != null) { - throw new IllegalStateException("cannot add a child that is already in the tree"); - } - - children.add(child); - this.childrenLists.put(child, new ArrayList<String>()); - this.parents.put(child, parent); - this.fireNodeAdded(STRINGS_TREE, this.path(child)); - } - void removeNode(String node) { - if (node == null) { - throw new NullPointerException(); - } - - Collection<String> children = this.childrenLists.get(node); - if (children == null) { - throw new IllegalStateException("node is not in tree"); - } - List<String> path = this.path(node); - for (String s : children) { - this.removeNode(s); - } - this.childrenLists.remove(node); - this.parents.remove(node); - this.fireNodeRemoved(STRINGS_TREE, path); - } - void replaceNode(String oldNode, String newNode) { - if ((oldNode == null) || (newNode == null)) { - throw new NullPointerException(); - } - - Collection<String> children = this.childrenLists.remove(oldNode); - if (children == null) { - throw new IllegalStateException("old node is not in tree"); - } - this.childrenLists.put(newNode, children); - for (String child : children) { - this.parents.put(child, newNode); - } - - String parent = this.parents.remove(oldNode); - this.parents.put(newNode, parent); - - this.fireTreeChanged(STRINGS_TREE, this.path(newNode)); - } - void clearTree() { - this.childrenLists.clear(); - this.childrenLists.put(root, new ArrayList<String>()); - this.parents.clear(); - this.parents.put(root, null); - this.fireTreeCleared(STRINGS_TREE); - } - void changeCollection() { - this.fireCollectionChanged("bogus collection", Collections.emptySet()); - } - } - - class Target { - TestModel testModel; - String treeName; - List<String> path; - boolean nodeAddedZeroArgumentFlag = false; - boolean nodeAddedSingleArgumentFlag = false; - boolean nodeRemovedZeroArgumentFlag = false; - boolean nodeRemovedSingleArgumentFlag = false; - boolean treeClearedZeroArgumentFlag = false; - boolean treeClearedSingleArgumentFlag = false; - boolean treeChangedZeroArgumentFlag = false; - boolean treeChangedSingleArgumentFlag = false; - boolean treeEventSingleArgumentFlag = false; - Target(TestModel testModel, String treeName, String[] path) { - super(); - this.testModel = testModel; - this.treeName = treeName; - this.path = Arrays.asList(path); - } - void nodeAddedZeroArgument() { - this.nodeAddedZeroArgumentFlag = true; - } - void nodeAddedSingleArgument(TreeAddEvent e) { - this.nodeAddedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - assertEquals(this.path, CollectionTools.list(e.getPath())); - } - void nodeRemovedZeroArgument() { - this.nodeRemovedZeroArgumentFlag = true; - } - void nodeRemovedSingleArgument(TreeRemoveEvent e) { - this.nodeRemovedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - assertEquals(this.path, CollectionTools.list(e.getPath())); - } - void treeClearedZeroArgument() { - this.treeClearedZeroArgumentFlag = true; - } - void treeClearedSingleArgument(TreeClearEvent e) { - this.treeClearedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - } - void treeChangedZeroArgument() { - this.treeChangedZeroArgumentFlag = true; - } - void treeChangedSingleArgument(TreeChangeEvent e) { - this.treeChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - } - void treeEventSingleArgument(TreeEvent e) { - this.treeChangedSingleArgumentFlag = true; - assertSame(this.testModel, e.getSource()); - assertEquals(this.treeName, e.getTreeName()); - } - void collectionChangedDoubleArgument(TreeChangeEvent e, Object o) { - fail("bogus event: " + e + " - object: " + o); - } - } - -} |