From 057f24b4f57dadeeba92a04c83e3bcd790e983b1 Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Sat, 5 May 2012 10:31:30 +0200 Subject: refactoring: more cleanup in connector interfaces * switch from method overrides to interface detection for connector features * remove GCBase and put code into other classes * reduce GC specific code being used in general activities --- .../geocaching/connector/gc/TrackablesTest.java | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java (limited to 'tests/src/cgeo/geocaching/connector/gc/TrackablesTest.java') 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 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 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 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); + } + +} -- cgit v1.1