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.Equal(t, 2, parsed.Len())
assert.Greater(t, parsed.DistanceM(1), 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())
}