Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Fauth2017-01-14 21:05:36 +0000
committerDirk Fauth2017-01-14 21:05:36 +0000
commitbf050520a1d7ede42b7489f1796cdfc17f8c4ecc (patch)
tree6034b6be73955cef43413c5cb30f50e6b3884d3b
parent6e3d64004d3b42157b4d1701a48f62a8ab003cb3 (diff)
downloadorg.eclipse.nebula.widgets.nattable-bf050520a1d7ede42b7489f1796cdfc17f8c4ecc.tar.gz
org.eclipse.nebula.widgets.nattable-bf050520a1d7ede42b7489f1796cdfc17f8c4ecc.tar.xz
org.eclipse.nebula.widgets.nattable-bf050520a1d7ede42b7489f1796cdfc17f8c4ecc.zip
Bug 510473 - Add test cases for default IFilterStrategy implementations
Change-Id: If2eb3345f931f11e956cdd4e27beac25a297b5d3 Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
-rw-r--r--org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/ComboBoxGlazedListsFilterStrategyTest.java221
-rw-r--r--org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsFilterStrategyTest.java126
-rw-r--r--org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsStaticFilterStrategyTest.java208
3 files changed, 555 insertions, 0 deletions
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/ComboBoxGlazedListsFilterStrategyTest.java b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/ComboBoxGlazedListsFilterStrategyTest.java
new file mode 100644
index 00000000..7764c178
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/ComboBoxGlazedListsFilterStrategyTest.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Dirk Fauth.
+ * 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:
+ * Dirk Fauth <dirk.fauth@googlemail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.nebula.widgets.nattable.extension.glazedlists.filterrow;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+
+import org.eclipse.nebula.widgets.nattable.config.ConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration;
+import org.eclipse.nebula.widgets.nattable.data.IColumnAccessor;
+import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
+import org.eclipse.nebula.widgets.nattable.data.ReflectiveColumnPropertyAccessor;
+import org.eclipse.nebula.widgets.nattable.dataset.person.Person;
+import org.eclipse.nebula.widgets.nattable.dataset.person.PersonService;
+import org.eclipse.nebula.widgets.nattable.edit.EditConstants;
+import org.eclipse.nebula.widgets.nattable.extension.glazedlists.fixture.DataLayerFixture;
+import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowDataProvider;
+import org.eclipse.nebula.widgets.nattable.filterrow.combobox.ComboBoxFilterRowConfiguration;
+import org.eclipse.nebula.widgets.nattable.filterrow.combobox.FilterRowComboBoxDataProvider;
+import org.eclipse.nebula.widgets.nattable.filterrow.config.DefaultFilterRowConfiguration;
+import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import ca.odell.glazedlists.EventList;
+import ca.odell.glazedlists.FilterList;
+import ca.odell.glazedlists.GlazedLists;
+import ca.odell.glazedlists.matchers.Matcher;
+
+public class ComboBoxGlazedListsFilterStrategyTest {
+
+ private static FilterList<Person> filterList;
+
+ private static ConfigRegistry configRegistry;
+ private static DataLayerFixture columnHeaderLayer;
+ private static FilterRowComboBoxDataProvider<Person> comboBoxDataProvider;
+ private static ComboBoxGlazedListsFilterStrategy<Person> filterStrategy;
+ private static FilterRowDataProvider<Person> dataProvider;
+
+ private static String[] personPropertyNames = {
+ "firstName",
+ "lastName",
+ "gender",
+ "married",
+ "birthday" };
+
+ private static Matcher<Person> homerFilter = new Matcher<Person>() {
+
+ @Override
+ public boolean matches(Person item) {
+ return !"Homer".equals(item.getFirstName());
+ }
+ };
+
+ @BeforeClass
+ public static void init() {
+ // initialize the collection with a big amount of values
+ EventList<Person> baseCollection = GlazedLists.eventList(PersonService.getFixedPersons());
+ for (int i = 1; i < 1000; i++) {
+ baseCollection.addAll(PersonService.getFixedPersons());
+ }
+ filterList = new FilterList<>(GlazedLists.eventList(baseCollection));
+
+ configRegistry = new ConfigRegistry();
+
+ new DefaultNatTableStyleConfiguration().configureRegistry(configRegistry);
+ new DefaultFilterRowConfiguration().configureRegistry(configRegistry);
+ new ComboBoxFilterRowConfiguration().configureRegistry(configRegistry);
+
+ columnHeaderLayer = new DataLayerFixture(5, 2, 100, 50);
+
+ IColumnAccessor<Person> bodyDataColumnAccessor = new ReflectiveColumnPropertyAccessor<>(personPropertyNames);
+ comboBoxDataProvider = new GlazedListsFilterRowComboBoxDataProvider<>(
+ new DataLayer(new ListDataProvider<>(filterList, bodyDataColumnAccessor)),
+ baseCollection,
+ bodyDataColumnAccessor);
+
+ filterStrategy = new ComboBoxGlazedListsFilterStrategy<>(
+ comboBoxDataProvider,
+ filterList,
+ bodyDataColumnAccessor,
+ configRegistry);
+ dataProvider = new FilterRowDataProvider<>(
+ filterStrategy,
+ columnHeaderLayer,
+ columnHeaderLayer.getDataProvider(), configRegistry);
+ }
+
+ @Before
+ public void setup() {
+ for (int i = 0; i < dataProvider.getColumnCount(); i++) {
+ dataProvider.getFilterIndexToObjectMap().put(i, EditConstants.SELECT_ALL_ITEMS_VALUE);
+ }
+ filterStrategy.applyFilter(dataProvider.getFilterIndexToObjectMap());
+ }
+
+ @Test
+ public void shouldFilterForSimpsons() {
+ assertEquals(18000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, Arrays.asList("Simpson"));
+
+ assertEquals(10000, filterList.size());
+ }
+
+ @Test
+ public void shouldFilterForMultipleCriteria() {
+ assertEquals(18000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, Arrays.asList("Homer", "Marge", "Maude"));
+
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, Arrays.asList("Flanders"));
+
+ assertEquals(2000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinSameOrder() {
+ dataProvider.setDataValue(0, 1, Arrays.asList("Homer", "Marge", "Maude"));
+ dataProvider.setDataValue(1, 1, Arrays.asList("Flanders"));
+ assertEquals(2000, filterList.size());
+
+ // this will imply to select all values
+ dataProvider.setDataValue(1, 1, comboBoxDataProvider.getValues(1, 0));
+ assertEquals(7000, filterList.size());
+
+ // setting null should be the same as selecting all
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(18000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinDifferentOrder() {
+ dataProvider.setDataValue(0, 1, Arrays.asList("Homer", "Marge", "Maude"));
+ dataProvider.setDataValue(1, 1, Arrays.asList("Flanders"));
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, comboBoxDataProvider.getValues(0, 0));
+ assertEquals(8000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, comboBoxDataProvider.getValues(1, 0));
+ assertEquals(18000, filterList.size());
+ }
+
+ // with static filter
+
+ @Test
+ public void shouldFilterForSimpsonsWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+ assertEquals(15000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, Arrays.asList("Simpson"));
+ assertEquals(7000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(10000, filterList.size());
+ }
+
+ @Test
+ public void shouldFilterForMultipleCriteriaWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+ assertEquals(15000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, Arrays.asList("Homer", "Marge", "Maude"));
+ assertEquals(4000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, Arrays.asList("Simpson"));
+ assertEquals(2000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(5000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinSameOrderWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+
+ dataProvider.setDataValue(0, 1, Arrays.asList("Homer", "Marge", "Maude"));
+ dataProvider.setDataValue(1, 1, Arrays.asList("Simpson"));
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, comboBoxDataProvider.getValues(1, 0));
+ assertEquals(4000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, comboBoxDataProvider.getValues(0, 0));
+ assertEquals(15000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(18000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinDifferentOrderWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+
+ dataProvider.setDataValue(0, 1, Arrays.asList("Homer", "Marge", "Maude"));
+ dataProvider.setDataValue(1, 1, Arrays.asList("Simpson"));
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, comboBoxDataProvider.getValues(0, 0));
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, comboBoxDataProvider.getValues(1, 0));
+ assertEquals(15000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(18000, filterList.size());
+ }
+}
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsFilterStrategyTest.java b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsFilterStrategyTest.java
new file mode 100644
index 00000000..40efb225
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsFilterStrategyTest.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Dirk Fauth.
+ * 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:
+ * Dirk Fauth <dirk.fauth@googlemail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.nebula.widgets.nattable.extension.glazedlists.filterrow;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.nebula.widgets.nattable.config.ConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration;
+import org.eclipse.nebula.widgets.nattable.data.ReflectiveColumnPropertyAccessor;
+import org.eclipse.nebula.widgets.nattable.dataset.person.Person;
+import org.eclipse.nebula.widgets.nattable.dataset.person.PersonService;
+import org.eclipse.nebula.widgets.nattable.extension.glazedlists.fixture.DataLayerFixture;
+import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowDataProvider;
+import org.eclipse.nebula.widgets.nattable.filterrow.config.DefaultFilterRowConfiguration;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import ca.odell.glazedlists.FilterList;
+import ca.odell.glazedlists.GlazedLists;
+
+public class DefaultGlazedListsFilterStrategyTest {
+
+ private static FilterList<Person> filterList;
+
+ private static ConfigRegistry configRegistry;
+ private static DataLayerFixture columnHeaderLayer;
+ private static FilterRowDataProvider<Person> dataProvider;
+
+ private static String[] personPropertyNames = {
+ "firstName",
+ "lastName",
+ "gender",
+ "married",
+ "birthday" };
+
+ @BeforeClass
+ public static void init() {
+ // initialize the collection with a big amount of values
+ filterList = new FilterList<>(GlazedLists.eventList(PersonService.getFixedPersons()));
+ for (int i = 1; i < 1000; i++) {
+ filterList.addAll(PersonService.getFixedPersons());
+ }
+ configRegistry = new ConfigRegistry();
+
+ new DefaultNatTableStyleConfiguration().configureRegistry(configRegistry);
+ new DefaultFilterRowConfiguration().configureRegistry(configRegistry);
+
+ columnHeaderLayer = new DataLayerFixture(5, 2, 100, 50);
+ dataProvider = new FilterRowDataProvider<>(
+ new DefaultGlazedListsFilterStrategy<>(
+ filterList,
+ new ReflectiveColumnPropertyAccessor<Person>(personPropertyNames),
+ configRegistry),
+ columnHeaderLayer,
+ columnHeaderLayer.getDataProvider(), configRegistry);
+ }
+
+ @Before
+ public void setup() {
+ // ensure to start over with a clear filter
+ dataProvider.clearAllFilters();
+ }
+
+ @Test
+ public void shouldFilterForSimpsons() {
+ assertEquals(18000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, "Simpson");
+
+ assertEquals(10000, filterList.size());
+ }
+
+ @Test
+ public void shouldFilterForMultipleCriteria() {
+ assertEquals(18000, filterList.size());
+
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, "Flanders");
+
+ assertEquals(2000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinSameOrder() {
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ dataProvider.setDataValue(1, 1, "Flanders");
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, null);
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(18000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinDifferentOrder() {
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ dataProvider.setDataValue(1, 1, "Flanders");
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(8000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, null);
+ assertEquals(18000, filterList.size());
+ }
+}
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsStaticFilterStrategyTest.java b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsStaticFilterStrategyTest.java
new file mode 100644
index 00000000..9bb92b49
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/src/org/eclipse/nebula/widgets/nattable/extension/glazedlists/filterrow/DefaultGlazedListsStaticFilterStrategyTest.java
@@ -0,0 +1,208 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Dirk Fauth.
+ * 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:
+ * Dirk Fauth <dirk.fauth@googlemail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.nebula.widgets.nattable.extension.glazedlists.filterrow;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.nebula.widgets.nattable.config.ConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration;
+import org.eclipse.nebula.widgets.nattable.data.ReflectiveColumnPropertyAccessor;
+import org.eclipse.nebula.widgets.nattable.dataset.person.Person;
+import org.eclipse.nebula.widgets.nattable.dataset.person.PersonService;
+import org.eclipse.nebula.widgets.nattable.extension.glazedlists.fixture.DataLayerFixture;
+import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowDataProvider;
+import org.eclipse.nebula.widgets.nattable.filterrow.config.DefaultFilterRowConfiguration;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import ca.odell.glazedlists.FilterList;
+import ca.odell.glazedlists.GlazedLists;
+import ca.odell.glazedlists.matchers.Matcher;
+
+public class DefaultGlazedListsStaticFilterStrategyTest {
+
+ private static FilterList<Person> filterList;
+
+ private static ConfigRegistry configRegistry;
+ private static DataLayerFixture columnHeaderLayer;
+ private static DefaultGlazedListsStaticFilterStrategy<Person> filterStrategy;
+ private static FilterRowDataProvider<Person> dataProvider;
+
+ private static String[] personPropertyNames = {
+ "firstName",
+ "lastName",
+ "gender",
+ "married",
+ "birthday" };
+
+ private static Matcher<Person> homerFilter = new Matcher<Person>() {
+
+ @Override
+ public boolean matches(Person item) {
+ return !"Homer".equals(item.getFirstName());
+ }
+ };
+
+ @BeforeClass
+ public static void init() {
+ // initialize the collection with a big amount of values
+ filterList = new FilterList<>(GlazedLists.eventList(PersonService.getFixedPersons()));
+ for (int i = 1; i < 1000; i++) {
+ filterList.addAll(PersonService.getFixedPersons());
+ }
+ configRegistry = new ConfigRegistry();
+
+ new DefaultNatTableStyleConfiguration().configureRegistry(configRegistry);
+ new DefaultFilterRowConfiguration().configureRegistry(configRegistry);
+
+ columnHeaderLayer = new DataLayerFixture(5, 2, 100, 50);
+ filterStrategy = new DefaultGlazedListsStaticFilterStrategy<>(
+ filterList,
+ new ReflectiveColumnPropertyAccessor<Person>(personPropertyNames),
+ configRegistry);
+ dataProvider = new FilterRowDataProvider<>(
+ filterStrategy,
+ columnHeaderLayer,
+ columnHeaderLayer.getDataProvider(), configRegistry);
+ }
+
+ @After
+ public void tearDown() {
+ // ensure to start over with a clear filter
+ dataProvider.clearAllFilters();
+ }
+
+ @Test
+ public void shouldFilterForSimpsons() {
+ assertEquals(18000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, "Simpson");
+
+ assertEquals(10000, filterList.size());
+ }
+
+ @Test
+ public void shouldFilterForMultipleCriteria() {
+ assertEquals(18000, filterList.size());
+
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, "Flanders");
+
+ assertEquals(2000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinSameOrder() {
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ dataProvider.setDataValue(1, 1, "Flanders");
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, null);
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(18000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinDifferentOrder() {
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ dataProvider.setDataValue(1, 1, "Flanders");
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(8000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, null);
+ assertEquals(18000, filterList.size());
+ }
+
+ // with static filter
+
+ @Test
+ public void shouldFilterForSimpsonsWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+ assertEquals(15000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, "Simpson");
+ assertEquals(7000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(10000, filterList.size());
+ }
+
+ @Test
+ public void shouldFilterForMultipleCriteriaWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+ assertEquals(15000, filterList.size());
+
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ assertEquals(4000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, "Simpson");
+ assertEquals(2000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(5000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinSameOrderWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ dataProvider.setDataValue(1, 1, "Simpson");
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, null);
+ assertEquals(4000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(15000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(18000, filterList.size());
+ }
+
+ @Test
+ public void shouldResetFilterinDifferentOrderWithStaticHomerFilter() {
+ filterStrategy.addStaticFilter(homerFilter);
+
+ // filter: contains m
+ // per fixed we have 3 Homer, 2 Marge, 2 Maude
+ dataProvider.setDataValue(0, 1, "m");
+ dataProvider.setDataValue(1, 1, "Simpson");
+ assertEquals(2000, filterList.size());
+
+ dataProvider.setDataValue(0, 1, null);
+ assertEquals(7000, filterList.size());
+
+ dataProvider.setDataValue(1, 1, null);
+ assertEquals(15000, filterList.size());
+
+ filterStrategy.removeStaticFilter(homerFilter);
+ assertEquals(18000, filterList.size());
+ }
+}

Back to the top