Add depot, attendant, jetfire, optimus, ota services with kustomize overlays
This commit is contained in:
76
services/ota_update_go/handlers/vehicle_path_test.go
Normal file
76
services/ota_update_go/handlers/vehicle_path_test.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package handlers_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"otaupdate/handlers"
|
||||
"otaupdate/services"
|
||||
"testing"
|
||||
|
||||
"github.com/fiskerinc/cloud-services/pkg/clickhouse"
|
||||
"github.com/julienschmidt/httprouter"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var chExpectedResult = []handlers.ChGpsRow{
|
||||
{"1G1FP87S1GN000445", 33.901499, -118.379155},
|
||||
{"1G1FP87S1GN000445", 33.101599, -118.189155},
|
||||
{"1G1FP87S1GN000446", 50.231084, 11.344868},
|
||||
{"1G1FP87S1GN000446", 50.141084, 11.145868},
|
||||
}
|
||||
|
||||
var expectedPathBody string = "" +
|
||||
"{" +
|
||||
`"1G1FP87S1GN000445":[[33.901499,-118.379155],[33.101599,-118.189155]],` +
|
||||
`"1G1FP87S1GN000446":[[50.231084,11.344868],[50.141084,11.145868]]` +
|
||||
"}"
|
||||
|
||||
func TestHandleVehiclePathPost(t *testing.T) {
|
||||
validQuery := "?lookback_hours=24"
|
||||
validBody := "{\"vins\":[\"1G1FP87S1GN000445\", \"1G1FP87S1GN000446\"]}"
|
||||
validVins := `["1G1FP87S1GN000445","1G1FP87S1GN000446"]`
|
||||
tests := map[string]struct {
|
||||
q string
|
||||
b string
|
||||
conn clickhouse.ConnInterface
|
||||
expStatus int
|
||||
expBody string
|
||||
}{
|
||||
"correct": {
|
||||
q: validQuery,
|
||||
b: validBody,
|
||||
conn: &clickhouse.MockConn{ExpectedResult: chExpectedResult},
|
||||
expStatus: http.StatusOK,
|
||||
expBody: expectedPathBody,
|
||||
},
|
||||
"missing_vins": {
|
||||
q: "",
|
||||
b: "",
|
||||
expStatus: http.StatusBadRequest,
|
||||
expBody: `{"message":"VINs required","error":"Bad Request"}`,
|
||||
},
|
||||
}
|
||||
|
||||
for tname, tt := range tests {
|
||||
t.Run(tname, func(t *testing.T) {
|
||||
services.SetClickhouseConn(tt.conn)
|
||||
w := httptest.NewRecorder()
|
||||
|
||||
p := httprouter.Params{
|
||||
{Key: "vins", Value: validVins},
|
||||
}
|
||||
ctx := context.WithValue(context.Background(), httprouter.ParamsKey, p)
|
||||
|
||||
reader := bytes.NewReader([]byte(tt.b))
|
||||
|
||||
r := httptest.NewRequest(http.MethodGet, "http://example.com/ota_update/vehicle_paths"+tt.q, reader).
|
||||
WithContext(ctx)
|
||||
|
||||
handlers.HandleVehiclePathsPost(w, r)
|
||||
assert.Equal(t, tt.expStatus, w.Code)
|
||||
assert.Equal(t, tt.expBody, w.Body.String())
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user