From 73a6f622ec617a95ab1969ad1b4135e20f296030 Mon Sep 17 00:00:00 2001 From: rsudev Date: Thu, 1 May 2014 12:46:15 +0200 Subject: Implements #3758, Filter for "Not found" caches --- main/res/values/strings.xml | 1 + main/src/cgeo/geocaching/filter/StateFilter.java | 14 +++++++++++ .../geocaching/filter/StateNotFoundFilterTest.java | 28 ++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 2aa3d00..6a0e571 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -715,6 +715,7 @@ Status Saved Log Found + Not Found Archived Disabled Premium Members only diff --git a/main/src/cgeo/geocaching/filter/StateFilter.java b/main/src/cgeo/geocaching/filter/StateFilter.java index f452259..fd14b69 100644 --- a/main/src/cgeo/geocaching/filter/StateFilter.java +++ b/main/src/cgeo/geocaching/filter/StateFilter.java @@ -32,6 +32,19 @@ abstract class StateFilter extends AbstractFilter { } + static class StateNotFoundFilter extends StateFilter { + + public StateNotFoundFilter() { + super(res.getString(R.string.cache_not_status_found)); + } + + @Override + public boolean accepts(final Geocache cache) { + return !cache.isFound(); + } + + } + static class StateArchivedFilter extends StateFilter { public StateArchivedFilter() { super(res.getString(R.string.cache_status_archived)); @@ -115,6 +128,7 @@ abstract class StateFilter extends AbstractFilter { public List getFilters() { final List filters = new ArrayList(6); filters.add(new StateFoundFilter()); + filters.add(new StateNotFoundFilter()); filters.add(new StateArchivedFilter()); filters.add(new StateDisabledFilter()); filters.add(new StatePremiumFilter()); diff --git a/tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java b/tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java new file mode 100644 index 0000000..2bf9d94 --- /dev/null +++ b/tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java @@ -0,0 +1,28 @@ +package cgeo.geocaching.filter; + +import static org.assertj.core.api.Assertions.assertThat; + +import cgeo.CGeoTestCase; +import cgeo.geocaching.Geocache; +import cgeo.geocaching.filter.StateFilter.StateNotFoundFilter; + +public class StateNotFoundFilterTest extends CGeoTestCase { + + private StateFilter.StateNotFoundFilter notFoundFilter; + private Geocache foundCache; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + notFoundFilter = new StateNotFoundFilter(); + foundCache = new Geocache(); + foundCache.setFound(true); + } + + public void testAccepts() { + assertThat(notFoundFilter.accepts(foundCache)).isFalse(); + assertThat(notFoundFilter.accepts(new Geocache())).isTrue(); + } + +} -- cgit v1.1