package de.westnordost.streetcomplete.data.statistics; import java.util.Date; import java.util.HashMap; import de.westnordost.osmapi.map.changes.MapDataChangesHandler; import de.westnordost.osmapi.map.data.Node; import de.westnordost.streetcomplete.ApplicationConstants; import de.westnordost.streetcomplete.data.ApplicationDbTestCase; import de.westnordost.osmapi.changesets.ChangesetInfo; import de.westnordost.osmapi.changesets.ChangesetsDao; import de.westnordost.osmapi.changesets.QueryChangesetsFilters; import de.westnordost.osmapi.common.Handler; public class QuestStatisticsDaoTest extends ApplicationDbTestCase { private QuestStatisticsDao dao; private static final String ONE = "one"; private static final String TWO = "two"; @Override public void setUp() { super.setUp(); dao = new QuestStatisticsDao(dbHelper, null); } private ChangesetInfo createChangeset() { ChangesetInfo result = new ChangesetInfo(); result.tags = new HashMap<>(); result.tags.put("created_by", ApplicationConstants.USER_AGENT); return result; } public void testGetZero() { assertEquals(0,dao.getAmount(ONE)); } public void testGetOne() { dao.addOne(ONE); assertEquals(1,dao.getAmount(ONE)); } public void testGetTwo() { dao.addOne(ONE); dao.addOne(ONE); assertEquals(2,dao.getAmount(ONE)); } public void testGetTotal() { dao.addOne(ONE); dao.addOne(ONE); dao.addOne(TWO); assertEquals(3,dao.getTotalAmount()); } private class TestChangesetsDao extends ChangesetsDao { private ChangesetInfo[] toReturn; private int count; public TestChangesetsDao(ChangesetInfo[] toReturn, int count) { super(null); this.toReturn = toReturn; this.count = count; } @Override public void find(Handler<ChangesetInfo> handler, QueryChangesetsFilters filters) { for (ChangesetInfo aToReturn : toReturn) { handler.handle(aToReturn); } } @Override public void getData(long id, MapDataChangesHandler handler) { for (int i = 0; i < count; i++) { handler.handle((Node) null); } } } }