package cgeo.geocaching.filter;
import junit.framework.TestCase;
import java.util.ArrayList;
import cgeo.geocaching.models.Geocache;
import cgeo.geocaching.enumerations.CacheSize;
import static org.assertj.core.api.Java6Assertions.assertThat;
public class SizeFilterTest extends TestCase {
private Geocache micro;
private Geocache regular;
private SizeFilter microFilter;
@Override
protected void setUp() throws Exception {
super.setUp();
// cache initialization can only be done without errors after application setup
micro = new Geocache();
micro.setSize(CacheSize.MICRO);
regular = new Geocache();
regular.setSize(CacheSize.REGULAR);
microFilter = new SizeFilter(CacheSize.MICRO);
}
public void testAccepts() {
assertThat(microFilter.accepts(micro)).isTrue();
assertThat(microFilter.accepts(regular)).isFalse();
}
public static void testGetAllFilters() {
final int expectedSizes = CacheSize.values().length - 1; // hide "UNKNOWN"
assertThat(new SizeFilter.Factory().getFilters()).hasSize(expectedSizes);
}
public void testFilter() {
final ArrayList<Geocache> list = new ArrayList<>();
list.add(regular);
list.add(micro);
assertThat(list).hasSize(2);
microFilter.filter(list);
assertThat(list).hasSize(1);
}
}