diff options
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java')
-rw-r--r-- | jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java deleted file mode 100644 index ac5bef16ae..0000000000 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java +++ /dev/null @@ -1,328 +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.value; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.Transformer; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.internal.model.event.ListChangeEvent; -import org.eclipse.jpt.utility.internal.model.listener.ListChangeListener; -import org.eclipse.jpt.utility.internal.model.value.ListValueModel; -import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter; -import org.eclipse.jpt.utility.internal.model.value.ValueModel; -import org.eclipse.jpt.utility.tests.internal.TestTools; - -import junit.framework.TestCase; - -public class TransformationListValueModelAdapterTests extends TestCase { - private ListValueModel listHolder; - private ListValueModel transformedListHolder; - ListChangeEvent event; - String eventType; - - private static final String ADD = "add"; - private static final String REMOVE = "remove"; - private static final String REPLACE = "replace"; - private static final String MOVE = "move"; - private static final String CLEAR = "clear"; - private static final String CHANGE = "change"; - - - public TransformationListValueModelAdapterTests(String name) { - super(name); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - this.listHolder = new SimpleListValueModel(this.buildList()); - this.transformedListHolder = this.buildTransformedListHolder(this.listHolder); - } - - private List buildList() { - List result = new ArrayList(); - result.add("foo"); - result.add("bar"); - result.add("baz"); - return result; - } - - private List buildTransformedList() { - return this.transform(this.buildList()); - } - - private List transform(List list) { - List result = new ArrayList(list.size()); - for (Iterator stream = list.iterator(); stream.hasNext(); ) { - String string = (String) stream.next(); - if (string == null) { - result.add(null); - } else { - result.add(string.toUpperCase()); - } - } - return result; - } - - private List buildAddList() { - List result = new ArrayList(); - result.add("joo"); - result.add("jar"); - result.add("jaz"); - return result; - } - - private List buildTransformedAddList() { - return this.transform(this.buildAddList()); - } - - private List buildRemoveList() { - List result = new ArrayList(); - result.add("foo"); - result.add("bar"); - return result; - } - - private List buildTransformedRemoveList() { - return this.transform(this.buildRemoveList()); - } - - ListValueModel buildTransformedListHolder(ListValueModel lvm) { - return new TransformationListValueModelAdapter(lvm) { - protected Object transformItem(Object item) { - return (item == null) ? null : ((String) item).toUpperCase(); - } - }; - } - - @Override - protected void tearDown() throws Exception { - TestTools.clear(this); - super.tearDown(); - } - - public void testValue() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - assertEquals(this.buildTransformedList(), CollectionTools.list((Iterator) this.transformedListHolder.value())); - } - - public void testStaleValue() { - ListChangeListener listener = this.buildListener(); - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, listener); - assertEquals(this.buildTransformedList(), CollectionTools.list((Iterator) this.transformedListHolder.value())); - - this.transformedListHolder.removeListChangeListener(ValueModel.VALUE, listener); - assertEquals(Collections.EMPTY_LIST, CollectionTools.list((Iterator) this.transformedListHolder.value())); - } - - public void testSize() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - assertEquals(this.buildTransformedList().size(), CollectionTools.size((Iterator) this.transformedListHolder.value())); - } - - private boolean transformedListContains(Object item) { - return CollectionTools.contains((Iterator) this.transformedListHolder.value(), item); - } - - private boolean transformedListContainsAll(Collection items) { - return CollectionTools.containsAll((Iterator) this.transformedListHolder.value(), items); - } - - private boolean transformedListContainsAny(Collection items) { - List transformedList = CollectionTools.list((ListIterator) this.transformedListHolder.value()); - for (Iterator stream = items.iterator(); stream.hasNext(); ) { - if (transformedList.contains(stream.next())) { - return true; - } - } - return false; - } - - public void testAddItem() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - - assertFalse(this.transformedListContains("JOO")); - this.listHolder.addItem(2, "joo"); - assertTrue(this.transformedListContains("JOO")); - - assertFalse(this.transformedListContains(null)); - this.listHolder.addItem(0, null); - assertTrue(this.transformedListContains(null)); - } - - public void testAddItems() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - - assertFalse(this.transformedListContainsAny(this.buildTransformedAddList())); - this.listHolder.addItems(2, this.buildAddList()); - assertTrue(this.transformedListContainsAll(this.buildTransformedAddList())); - } - - public void testRemoveItem() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - - assertTrue(this.transformedListContains("BAR")); - this.listHolder.removeItem(this.buildList().indexOf("bar")); - assertFalse(this.transformedListContains("BAR")); - - this.listHolder.addItem(1, null); - assertTrue(this.transformedListContains(null)); - this.listHolder.removeItem(1); - assertFalse(this.transformedListContains(null)); - } - - public void testRemoveItems() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - - assertTrue(this.transformedListContainsAll(this.buildTransformedRemoveList())); - this.listHolder.removeItems(0, 2); - assertFalse(this.transformedListContainsAny(this.buildTransformedRemoveList())); - } - - public void testListChangeGeneric() { - this.transformedListHolder.addListChangeListener(this.buildListener()); - this.verifyListChange(); - } - - public void testListChangeNamed() { - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, this.buildListener()); - this.verifyListChange(); - } - - private void verifyListChange() { - this.event = null; - this.eventType = null; - this.listHolder.addItem(1, "joo"); - this.verifyEvent(ADD, 1, "JOO"); - - this.event = null; - this.eventType = null; - this.listHolder.addItem(1, null); - this.verifyEvent(ADD, 1, null); - - this.event = null; - this.eventType = null; - this.listHolder.removeItem(1); - this.verifyEvent(REMOVE, 1, null); - - this.event = null; - this.eventType = null; - this.listHolder.removeItem(1); - this.verifyEvent(REMOVE, 1, "JOO"); - - this.event = null; - this.eventType = null; - this.listHolder.addItems(0, this.buildList()); - this.verifyEvent(ADD); - assertEquals(this.buildTransformedList(), CollectionTools.list(this.event.items())); - - this.event = null; - this.eventType = null; - this.listHolder.replaceItem(0, "joo"); - this.verifyEvent(REPLACE); - assertFalse(CollectionTools.contains(this.event.items(), "FOO")); - assertTrue(CollectionTools.contains(this.event.items(), "JOO")); - } - - private ListChangeListener buildListener() { - return new ListChangeListener() { - public void itemsAdded(ListChangeEvent e) { - TransformationListValueModelAdapterTests.this.eventType = ADD; - TransformationListValueModelAdapterTests.this.event = e; - } - public void itemsRemoved(ListChangeEvent e) { - TransformationListValueModelAdapterTests.this.eventType = REMOVE; - TransformationListValueModelAdapterTests.this.event = e; - } - public void itemsReplaced(ListChangeEvent e) { - TransformationListValueModelAdapterTests.this.eventType = REPLACE; - TransformationListValueModelAdapterTests.this.event = e; - } - public void itemsMoved(ListChangeEvent e) { - TransformationListValueModelAdapterTests.this.eventType = MOVE; - TransformationListValueModelAdapterTests.this.event = e; - } - public void listCleared(ListChangeEvent e) { - TransformationListValueModelAdapterTests.this.eventType = CLEAR; - TransformationListValueModelAdapterTests.this.event = e; - } - public void listChanged(ListChangeEvent e) { - TransformationListValueModelAdapterTests.this.eventType = CHANGE; - TransformationListValueModelAdapterTests.this.event = e; - } - }; - } - - private void verifyEvent(String type) { - assertEquals(type, this.eventType); - assertEquals(this.transformedListHolder, this.event.getSource()); - assertEquals(ValueModel.VALUE, this.event.listName()); - } - - private void verifyEvent(String type, int index, Object item) { - this.verifyEvent(type); - assertEquals(index, this.event.index()); - assertEquals(item, this.event.items().next()); - } - - public void testHasListeners() { - /* - * adding listeners to the transformed list will cause listeners - * to be added to the wrapped list; - * likewise, removing listeners from the transformed list will - * cause listeners to be removed from the wrapped list - */ - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ValueModel.VALUE)); - - ListChangeListener listener = this.buildListener(); - - this.transformedListHolder.addListChangeListener(ValueModel.VALUE, listener); - assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ValueModel.VALUE)); - - this.transformedListHolder.removeListChangeListener(ValueModel.VALUE, listener); - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ValueModel.VALUE)); - - this.transformedListHolder.addListChangeListener(listener); - assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ValueModel.VALUE)); - - this.transformedListHolder.removeListChangeListener(listener); - assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ValueModel.VALUE)); - } - - - /** - * execute the same set of tests again, but by passing a Transformer to the adapter - * (as opposed to overriding #transformItem(Object)) - */ - public static class TransformerTests extends TransformationListValueModelAdapterTests { - public TransformerTests(String name) { - super(name); - } - ListValueModel buildTransformedListHolder(ListValueModel lvm) { - return new TransformationListValueModelAdapter(lvm, this.buildTransformer()); - } - private Transformer buildTransformer() { - return new Transformer() { - public Object transform(Object o) { - return (o == null) ? null : ((String) o).toUpperCase(); - } - }; - } - } - -} |