aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/cgeo/geocaching/TrackablesTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/cgeo/geocaching/TrackablesTest.java')
-rw-r--r--tests/src/cgeo/geocaching/TrackablesTest.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/TrackablesTest.java b/tests/src/cgeo/geocaching/TrackablesTest.java
index 390e118..7760b10 100644
--- a/tests/src/cgeo/geocaching/TrackablesTest.java
+++ b/tests/src/cgeo/geocaching/TrackablesTest.java
@@ -1,6 +1,7 @@
package cgeo.geocaching;
import cgeo.geocaching.test.R;
+import cgeo.geocaching.utils.BaseUtils;
import android.test.InstrumentationTestCase;
@@ -25,8 +26,38 @@ public class TrackablesTest extends InstrumentationTestCase {
assertEquals(0, tbLogs.size());
}
+ public void testTrackable() {
+ final cgTrackable trackable = getTB2R124();
+ assertEquals("TB2R124", trackable.getGeocode());
+ assertEquals("Bor. Dortmund - FC Schalke 04", trackable.getName());
+ assertEquals("Spiridon Lui", trackable.getOwner());
+ }
+
+ public void testTrackableWithoutImage() {
+ final cgTrackable trackable = getTB2R124();
+ assertNull(trackable.getImage());
+ assertNotNull(trackable.getDetails());
+ }
+
+ public void testParseTrackableWithoutReleaseDate() {
+ cgTrackable trackable = cgBase.parseTrackable(getFileContent(R.raw.tb14wfv), null);
+ assertNotNull(trackable);
+ assertEquals("The Brickster", trackable.getName());
+ assertEquals("Adrian C", trackable.getOwner());
+ assertTrue(trackable.getGoal().startsWith("I'm on the run from the law."));
+ assertTrue(trackable.getGoal().endsWith("what I've seen."));
+ assertEquals(8451.9, trackable.getDistance(), 0.01);
+ // the next two items are normally available for trackables, but not for this one, so explicitly test for null
+ assertNull(trackable.getReleased());
+ assertNull(trackable.getOrigin());
+ }
+
private String getFileContent(int resourceId) {
InputStream ins = getInstrumentation().getContext().getResources().openRawResource(resourceId);
return new Scanner(ins).useDelimiter("\\A").next();
}
+
+ private cgTrackable getTB2R124() {
+ return cgBase.parseTrackable(BaseUtils.replaceWhitespace(getFileContent(R.raw.trackable_tb2r124)), null);
+ }
}