package cgeo.geocaching.filter; import junit.framework.TestCase; import java.util.ArrayList; import cgeo.geocaching.models.Geocache; import cgeo.geocaching.enumerations.CacheType; import static org.assertj.core.api.Java6Assertions.assertThat; public class TypeFilterTest extends TestCase { private TypeFilter traditionalFilter; private Geocache traditional; private Geocache mystery; @Override protected void setUp() throws Exception { super.setUp(); traditionalFilter = new TypeFilter(CacheType.TRADITIONAL); traditional = new Geocache(); traditional.setType(CacheType.TRADITIONAL); mystery = new Geocache(); mystery.setType(CacheType.MYSTERY); } public void testAccepts() { assertThat(traditionalFilter.accepts(traditional)).isTrue(); assertThat(traditionalFilter.accepts(mystery)).isFalse(); } public void testFilter() { final ArrayList<Geocache> list = new ArrayList<>(); traditionalFilter.filter(list); assertThat(list).isEmpty(); list.add(traditional); list.add(mystery); assertThat(list).hasSize(2); traditionalFilter.filter(list); assertThat(list).containsExactly(traditional); } public static void testGetAllFilters() { final int expectedEntries = CacheType.values().length - 1; // hide "all" assertThat(new TypeFilter.Factory().getFilters()).hasSize(expectedEntries); } }