diff --git a/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/GPXParserTest.java b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/GPXParserTest.java new file mode 100644 index 000000000..0b3c21848 --- /dev/null +++ b/app/src/test/java/nodomain/freeyourgadget/gadgetbridge/test/GPXParserTest.java @@ -0,0 +1,33 @@ +package nodomain.freeyourgadget.gadgetbridge.test; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; +import java.io.InputStream; +import java.text.DecimalFormat; +import java.util.List; + +import nodomain.freeyourgadget.gadgetbridge.model.GPSCoordinate; +import nodomain.freeyourgadget.gadgetbridge.util.GpxParser; + +import static org.hamcrest.Matchers.anyOf; +import static org.hamcrest.Matchers.is; + +public class GPXParserTest extends TestBase { + + @Test + public void shouldReadGPXCorrectly() throws IOException { + try (final InputStream inputStream = getClass().getResourceAsStream("/gpx-exporter-test-SampleTrack.gpx")) { + GpxParser gpxParser = new GpxParser(inputStream); + List trackPoints = gpxParser.getPoints(); + Assert.assertEquals(trackPoints.size(), 14); + DecimalFormat df = new DecimalFormat("###.##"); + for (GPSCoordinate tp : trackPoints) { + Assert.assertEquals(df.format(tp.getLongitude()), "44.15"); + Assert.assertEquals(df.format(tp.getLatitude()), "-68.2"); + Assert.assertThat(df.format(tp.getAltitude()), anyOf(is("40"), is("46"))); + } + } + } +} diff --git a/app/src/test/resources/gpx-exporter-test-SampleTrack.gpx b/app/src/test/resources/gpx-exporter-test-SampleTrack.gpx new file mode 100644 index 000000000..24141feb1 --- /dev/null +++ b/app/src/test/resources/gpx-exporter-test-SampleTrack.gpx @@ -0,0 +1,70 @@ + + + + Test Track + + Test User + + + + + + + 40.000000 + + + + 40.000000 + + + + 40.000000 + + + + 40.000000 + + + + 40.000000 + + + + 40.000000 + + + + 40.000000 + + + + 40.000000 + + + + 46.000000 + + + + 46.000000 + + + + 46.000000 + + + + 46.000000 + + + + 46.000000 + + + + 46.000000 + + + + +