114 lines
2.8 KiB
Go
114 lines
2.8 KiB
Go
package handlers_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
|
|
"github.com/fiskerinc/cloud-services/services/attendant/services"
|
|
|
|
"github.com/fiskerinc/cloud-services/pkg/common"
|
|
"github.com/fiskerinc/cloud-services/pkg/db/queries/mocks"
|
|
"github.com/fiskerinc/cloud-services/pkg/redis"
|
|
"github.com/fiskerinc/cloud-services/pkg/redis/tester"
|
|
"github.com/go-pg/pg/v10/orm"
|
|
)
|
|
|
|
var mockRedis *redis.Connection
|
|
var mockDB *services.DB
|
|
var testDateTime time.Time = time.Date(2022, 1, 2, 3, 4, 5, 6, time.UTC)
|
|
|
|
func setupRedisMock() {
|
|
redis.MockRedisConnection()
|
|
mockRedis = &redis.Connection{}
|
|
}
|
|
|
|
func setupDBMock() {
|
|
db := services.DB{}
|
|
db.SetCarUpdates(&mocks.MockCarUpdates{
|
|
SelectCarUpdateResponse: &common.CarUpdate{
|
|
ID: 1,
|
|
VIN: "FISKER123",
|
|
UpdateManifestID: 2,
|
|
UpdateManifest: &common.UpdateManifest{
|
|
ID: 2,
|
|
Name: "TEST_PACKAGE",
|
|
Version: "1.0.0",
|
|
ReleaseNotes: "http://releasenotes.com",
|
|
Country: "US",
|
|
PowerTrain: "MD23",
|
|
Restraint: "None",
|
|
Model: "Ocean",
|
|
Trim: "Sport",
|
|
Year: 2022,
|
|
BodyType: "truck",
|
|
},
|
|
},
|
|
})
|
|
db.SetECU(&mocks.MockEcuDtc{})
|
|
db.SetCars(&mocks.MockCars{
|
|
SelectResponse: &common.Car{},
|
|
})
|
|
carVersionLogMock := mocks.MockCarVersionsLog{MockLogVersionChange: func(log *common.CarVersionLogs) (orm.Result, error) {
|
|
return nil, nil
|
|
}}
|
|
db.SetCarVersionsLog(&carVersionLogMock)
|
|
mockDB = &db
|
|
}
|
|
|
|
type mockRedisCache struct {
|
|
redis.Connection
|
|
}
|
|
|
|
func (c *mockRedisCache) GetSet(id string, data interface{}) error {
|
|
driverIDs := []string{"valid-cognito-id-1", "valid-cognito-id-2"}
|
|
|
|
dataBytes, err := json.Marshal(driverIDs)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(dataBytes, data)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func NewRedisMock() *tester.MockRedis {
|
|
redis.MockRedisConnection()
|
|
return &tester.MockRedis{}
|
|
}
|
|
|
|
type AttendentRouteTestCase struct {
|
|
Name string
|
|
SelectCarUpdate *common.CarUpdate
|
|
SelectCarUpdates []common.CarUpdate
|
|
CarUpdateError error
|
|
SelectCarToDrivers []common.CarToDriver
|
|
CarToDriversError error
|
|
MockLoadManifest *common.UpdateManifest
|
|
MockFileKeysSelect []common.FileKey
|
|
MockFileKeysError error
|
|
MockEccKeysSelect []common.ECCKeys
|
|
tester.RedisTestCase
|
|
}
|
|
|
|
func (at *AttendentRouteTestCase) SetupDB(mockCars *mocks.MockCars, mockCarUpdates *mocks.MockCarUpdates, test *AttendentRouteTestCase) {
|
|
if test == nil {
|
|
return
|
|
}
|
|
|
|
if mockCars != nil {
|
|
mockCars.SelectCarsForDrivers = test.SelectCarToDrivers
|
|
mockCars.Error = test.CarToDriversError
|
|
}
|
|
|
|
if mockCarUpdates != nil {
|
|
mockCarUpdates.SelectCarUpdateResponse = test.SelectCarUpdate
|
|
mockCarUpdates.SelectCarUpdatesResponse = test.SelectCarUpdates
|
|
mockCarUpdates.LoadManifest = test.MockLoadManifest
|
|
mockCarUpdates.Error = test.CarUpdateError
|
|
}
|
|
}
|