aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/cgeo/geocaching/GeocacheTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/cgeo/geocaching/GeocacheTest.java')
-rw-r--r--tests/src/cgeo/geocaching/GeocacheTest.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/GeocacheTest.java b/tests/src/cgeo/geocaching/GeocacheTest.java
new file mode 100644
index 0000000..5431835
--- /dev/null
+++ b/tests/src/cgeo/geocaching/GeocacheTest.java
@@ -0,0 +1,81 @@
+package cgeo.geocaching;
+
+import cgeo.geocaching.enumerations.CacheType;
+import cgeo.geocaching.geopoint.Geopoint;
+
+import android.os.Handler;
+import android.test.AndroidTestCase;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class GeocacheTest extends AndroidTestCase {
+
+ final static private class MockedEventCache extends Geocache {
+ public MockedEventCache(final Date date) {
+ setHidden(date);
+ setType(CacheType.EVENT);
+ }
+ }
+
+ public static void testCanBeAddedToCalendar() {
+ final Date today = new Date();
+ final Geocache cacheToday = new MockedEventCache(today);
+ assertTrue(cacheToday.canBeAddedToCalendar());
+
+ final Date yesterday = new Date(today.getTime() - 86400 * 1000);
+ final MockedEventCache cacheYesterday = new MockedEventCache(yesterday);
+ assertFalse(cacheYesterday.canBeAddedToCalendar());
+ }
+
+ public static void testEquality() {
+ final Geocache one = new Geocache();
+ final Geocache two = new Geocache();
+
+ // identity
+ assertTrue(one.equals(one));
+
+ // different objects without geocode shall not be equal
+ assertFalse(one.equals(two));
+
+ one.setGeocode("geocode");
+ two.setGeocode("geocode");
+
+ // different objects with same geocode shall be equal
+ assertTrue(one.equals(two));
+ }
+
+ public static void testGeocodeUppercase() {
+ final Geocache cache = new Geocache();
+ cache.setGeocode("gc1234");
+ assertEquals("GC1234", cache.getGeocode());
+ }
+
+ public static void testUpdateWaypointFromNote() {
+ assertWaypointsParsed("Test N51 13.888 E007 03.444", 1);
+ }
+
+ public static void testUpdateWaypointsFromNote() {
+ assertWaypointsParsed("Test N51 13.888 E007 03.444 Test N51 13.233 E007 03.444 Test N51 09.123 E007 03.444", 3);
+ }
+
+ private static void assertWaypointsParsed(String note, int expectedWaypoints) {
+ Geocache cache = new Geocache();
+ cache.setGeocode("Test" + System.nanoTime());
+ cache.setWaypoints(new ArrayList<Waypoint>(), false);
+ for (int i = 0; i < 2; i++) {
+ cache.setPersonalNote(note);
+ cache.parseWaypointsFromNote();
+ final List<Waypoint> waypoints = cache.getWaypoints();
+ assertNotNull(waypoints);
+ assertEquals(expectedWaypoints, waypoints.size());
+ final Waypoint waypoint = waypoints.get(0);
+ assertEquals(new Geopoint("N51 13.888 E007 03.444"), waypoint.getCoords());
+ // assertEquals("Test", waypoint.getNote());
+ assertEquals(cgeoapplication.getInstance().getString(R.string.cache_personal_note) + " 1", waypoint.getName());
+ cache.store(StoredList.TEMPORARY_LIST_ID, null);
+ }
+ cache.drop(new Handler());
+ }
+}