diff options
Diffstat (limited to 'tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java')
| -rw-r--r-- | tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java b/tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java new file mode 100644 index 0000000..ace7c7a --- /dev/null +++ b/tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java @@ -0,0 +1,80 @@ +package cgeo.geocaching.connector.gc; + +import cgeo.geocaching.LogEntry; +import cgeo.geocaching.TrackableLog; +import cgeo.geocaching.cgTrackable; +import cgeo.geocaching.connector.gc.GCParser; +import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase; +import cgeo.geocaching.test.R; +import cgeo.geocaching.utils.BaseUtils; + +import java.util.List; + +public class TrackablesTest extends AbstractResourceInstrumentationTestCase { + + public void testLogPageWithTrackables() { + List<TrackableLog> tbLogs = GCParser.parseTrackableLog(getFileContent(R.raw.log_with_2tb)); + assertNotNull(tbLogs); + assertEquals(2, tbLogs.size()); + TrackableLog log = tbLogs.get(0); + assertEquals("Steffen's Kaiserwagen", log.name); + assertEquals("1QG1EE", log.trackCode); + } + + public void testLogPageWithoutTrackables() { + List<TrackableLog> tbLogs = GCParser.parseTrackableLog(getFileContent(R.raw.log_without_tb)); + assertNotNull(tbLogs); + 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 testTrackableWithLogImages() { + final cgTrackable trackable = getTBXATG(); + assertEquals("TBXATG", trackable.getGeocode()); + + List<LogEntry> log = trackable.getLogs(); + // second log entry has several images; just check first two + assertEquals("http://img.geocaching.com/track/log/large/f2e24c50-394c-4d74-8fb4-87298d8bff1d.jpg", log.get(1).getLogImages().get(0).getUrl()); + assertEquals("7b Welcome to Geowoodstock", log.get(1).getLogImages().get(0).getTitle()); + assertEquals("http://img.geocaching.com/track/log/large/b57c29c3-134e-4202-a2a1-69ce8920b055.jpg", log.get(1).getLogImages().get(1).getUrl()); + assertEquals("8 Crater Lake Natl Park Oregon", log.get(1).getLogImages().get(1).getTitle()); + + // third log entry has one image + assertEquals("http://img.geocaching.com/track/log/large/0096b42d-4d10-45fa-9be2-2d08c0d5cc61.jpg", log.get(2).getLogImages().get(0).getUrl()); + assertEquals("Traverski's GC Univ coin on tour", log.get(2).getLogImages().get(0).getTitle()); + } + + public void testParseTrackableWithoutReleaseDate() { + cgTrackable trackable = GCParser.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.")); + assertTrue(trackable.getDistance() >= 11663.5f); + // 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 cgTrackable getTB2R124() { + return GCParser.parseTrackable(BaseUtils.replaceWhitespace(getFileContent(R.raw.trackable_tb2r124)), null); + } + + private cgTrackable getTBXATG() { + return GCParser.parseTrackable(BaseUtils.replaceWhitespace(getFileContent(R.raw.trackable_tbxatg)), null); + } + +} |
