Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Thoms2018-05-10 20:50:42 +0000
committerKarsten Thoms2018-05-11 11:27:43 +0000
commit42a89fd3f087abb30bfcc40acd69142e11c37df8 (patch)
treee188df969a96ca780ecca1edcacb64fc4c9616be
parent60123784244bc6302bbdf945c554c49426c8494e (diff)
downloadeclipse.platform.ui-42a89fd3f087abb30bfcc40acd69142e11c37df8.tar.gz
eclipse.platform.ui-42a89fd3f087abb30bfcc40acd69142e11c37df8.tar.xz
eclipse.platform.ui-42a89fd3f087abb30bfcc40acd69142e11c37df8.zip
Bug 517573 - Re-added testsI20180511-2000
This reverts commit 071f7583be8b233e7bd098c900b5784205855595. Change-Id: I355f5649c26ddae21dade76dfaefd93e59f83162 Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de>
-rw-r--r--tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF3
-rw-r--r--tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapCellLabelProviderTest.java111
2 files changed, 113 insertions, 1 deletions
diff --git a/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF b/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
index e12ffe2bdb2..2a528db06b4 100644
--- a/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
@@ -14,7 +14,8 @@ Require-Bundle: org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
org.eclipse.core.databinding.beans,
org.eclipse.jface.databinding,
org.eclipse.jface.tests.databinding.conformance,
- org.eclipse.core.databinding.property
+ org.eclipse.core.databinding.property,
+ org.mockito;bundle-version="[1.8.4,1.9.0)"
Import-Package: com.ibm.icu.math,
com.ibm.icu.text
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapCellLabelProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapCellLabelProviderTest.java
new file mode 100644
index 00000000000..3a0f58b57b3
--- /dev/null
+++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapCellLabelProviderTest.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Jens Lidestrom and others.
+ * 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
+ ******************************************************************************/
+package org.eclipse.jface.tests.databinding.viewers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.map.WritableMap;
+import org.eclipse.jface.databinding.viewers.ObservableMapCellLabelProvider;
+import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.junit.Test;
+
+/**
+ * Tests {@link ObservableMapCellLabelProvider}.
+ */
+public class ObservableMapCellLabelProviderTest extends AbstractDefaultRealmTestCase {
+ @Test
+ public void testUpdateWithValue() {
+ Object key = new Object();
+ WritableMap<Object, Object> m = new WritableMap<>();
+ m.put(key, "value");
+ ObservableMapCellLabelProvider labelProvider = new ObservableMapCellLabelProvider(m);
+
+ ViewerCell cell = mock(ViewerCell.class);
+ when(cell.getElement()).thenReturn(key);
+
+ // Return a large arbitrary value, it should not affect the result
+ when(cell.getColumnIndex()).thenReturn(17);
+
+ labelProvider.update(cell);
+
+ verify(cell).setText("value");
+ }
+
+ @Test
+ public void testUpdateNullValue() {
+ Object key = new Object();
+ WritableMap<Object, Object> m = new WritableMap<>();
+ m.put(key, null);
+ ObservableMapCellLabelProvider labelProvider = new ObservableMapCellLabelProvider(m);
+
+ ViewerCell cell = mock(ViewerCell.class);
+ when(cell.getElement()).thenReturn(key);
+
+ labelProvider.update(cell);
+
+ verify(cell).setText("");
+ }
+
+ @Test
+ public void testListenerNotification() throws Exception {
+ List<LabelProviderChangedEvent> events = new ArrayList<>();
+
+ WritableMap<Object, Object> m1 = new WritableMap<>();
+ WritableMap<Object, Object> m2 = new WritableMap<>();
+ Object key1 = new Object();
+ Object key2 = new Object();
+
+ // Extend class to test with multiple maps
+ class ObservableMapCellLabelProviderExtension extends ObservableMapCellLabelProvider {
+ public ObservableMapCellLabelProviderExtension(IObservableMap<?, ?>... maps) {
+ super(maps);
+ }
+ }
+
+ ObservableMapCellLabelProvider labelProvider = new ObservableMapCellLabelProviderExtension(m1, m2);
+
+ labelProvider.addListener(e -> events.add(e));
+
+ // Add an element an verify response
+ m1.put(key1, "value1");
+
+ assertEquals(1, events.size());
+ assertEquals(labelProvider, events.get(0).getSource());
+
+ // When a key is added there is no element in the event
+ // (Note: The author of this test in not sure whether this is the
+ // correct behavior.)
+ assertTrue(events.get(0).getElements() == null || events.get(0).getElements().length == 0);
+
+ // Change value and verify that the right element gets an update
+ m1.put(key1, "value2");
+
+ assertEquals(2, events.size());
+
+ // When a key is changed there is an element in the event
+ assertEquals(1, events.get(1).getElements().length);
+ assertEquals(key1, events.get(1).getElements()[0]);
+
+ // Add another key and verify that first key don't get an update
+ m1.put(key2, "value3");
+
+ assertEquals(3, events.size());
+ assertEquals(labelProvider, events.get(2).getSource());
+ assertTrue(events.get(2).getElements() == null || events.get(2).getElements().length == 0);
+ }
+}

Back to the top