package ride_test import ( "strings" "testing" "github.com/martinlehoux/biking_home/ride" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) const parserTestGPXPrefix = `` const parserTestGPXSuffix = `` func TestGPXRideParserSkipsStationaryPoints(t *testing.T) { data := parserTestGPXPrefix + `100` + `101` + `102` + `103` + parserTestGPXSuffix parsed, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) require.NoError(t, err) assert.Len(t, parsed.Points(), 2) assert.Greater(t, parsed.Points()[1].DistanceM, 0.0) } func TestGPXRideParserRejectsStationaryRide(t *testing.T) { data := parserTestGPXPrefix + `100` + `101` + parserTestGPXSuffix _, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) require.Error(t, err) assert.Equal(t, "zero distance", err.Error()) } func TestGPXRideParserRejectsEmptyTrack(t *testing.T) { data := parserTestGPXPrefix + parserTestGPXSuffix _, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) require.Error(t, err) assert.Equal(t, "ride has no track points", err.Error()) }