diff options
Diffstat (limited to 'tests/src/cgeo/geocaching/cgDataTest.java')
| -rw-r--r-- | tests/src/cgeo/geocaching/cgDataTest.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/cgDataTest.java b/tests/src/cgeo/geocaching/cgDataTest.java index a6fb846..e175603 100644 --- a/tests/src/cgeo/geocaching/cgDataTest.java +++ b/tests/src/cgeo/geocaching/cgDataTest.java @@ -1,6 +1,8 @@ package cgeo.geocaching; import cgeo.CGeoTestCase; +import cgeo.geocaching.connector.gc.GCConnector; +import cgeo.geocaching.connector.gc.Tile; import cgeo.geocaching.enumerations.CacheType; import cgeo.geocaching.enumerations.LoadFlags; import cgeo.geocaching.enumerations.LoadFlags.SaveFlag; @@ -131,4 +133,67 @@ public class cgDataTest extends CGeoTestCase { assertNotNull("Logs must not be null", logs); assertEquals("Logs from empty geocode must be empty", 0, logs.size()); } + + public static void testLoadCacheHistory() { + int sumCaches = 0; + int allCaches = 0; + for (CacheType cacheType : CacheType.values()) { + SearchResult historyOfType = cgData.getHistoryOfCaches(false, cacheType); + assertNotNull(historyOfType); + if (cacheType != CacheType.ALL) { + sumCaches += historyOfType.getCount(); + } else { + allCaches = historyOfType.getCount(); + } + } + // check that sum of types equals 'all' + assertEquals(sumCaches, allCaches); + // check that two different routines behave the same + assertEquals(cgData.getAllHistoryCachesCount(), sumCaches); + } + + public static void testCachedMissing() { + + // Tile to test + final Tile tile = new Tile(new Geopoint("N49 44.0 E8 37.0"), 14); + final Set<Tile> tiles = new HashSet<Tile>(); + tiles.add(tile); + + // set up geocaches to fill into cacheCache + final Geocache main = new Geocache(); + main.setGeocode("GC12345"); + main.setCoords(new Geopoint("N49 44.0 E8 37.0")); + final Geocache inTileLowZoom = new Geocache(); + inTileLowZoom.setGeocode("GC12346"); + inTileLowZoom.setCoords(new Geopoint("N49 44.001 E8 37.001")); + inTileLowZoom.setZoomlevel(Tile.ZOOMLEVEL_MIN_PERSONALIZED - 5); + final Geocache outTile = new Geocache(); + outTile.setGeocode("GC12347"); + outTile.setCoords(new Geopoint(tile.getViewport().getLatitudeMin() - 0.1, tile.getViewport().getLongitudeMin() - 0.1)); + final Geocache otherConnector = new Geocache(); + otherConnector.setGeocode("OC0001"); + otherConnector.setCoords(new Geopoint("N49 44.0 E8 37.0")); + final Geocache inTileHighZoom = new Geocache(); + inTileHighZoom.setGeocode("GC12348"); + inTileHighZoom.setCoords(new Geopoint("N49 44.001 E8 37.001")); + inTileHighZoom.setZoomlevel(Tile.ZOOMLEVEL_MIN_PERSONALIZED + 1); + + // put in cache + cgData.saveCache(main, EnumSet.of(SaveFlag.SAVE_CACHE)); + cgData.saveCache(inTileLowZoom, EnumSet.of(SaveFlag.SAVE_CACHE)); + cgData.saveCache(inTileHighZoom, EnumSet.of(SaveFlag.SAVE_CACHE)); + cgData.saveCache(outTile, EnumSet.of(SaveFlag.SAVE_CACHE)); + cgData.saveCache(otherConnector, EnumSet.of(SaveFlag.SAVE_CACHE)); + + final SearchResult search = new SearchResult(main); + + Set<String> filteredGeoCodes = cgData.getCachedMissingFromSearch(search, tiles, GCConnector.getInstance(), Tile.ZOOMLEVEL_MIN_PERSONALIZED - 1); + + assertTrue(filteredGeoCodes.contains(inTileLowZoom.getGeocode())); + assertFalse(filteredGeoCodes.contains(inTileHighZoom.getGeocode())); + assertFalse(filteredGeoCodes.contains(otherConnector.getGeocode())); + assertFalse(filteredGeoCodes.contains(outTile.getGeocode())); + assertFalse(filteredGeoCodes.contains(main.getGeocode())); + + } } |
