Files
cloud-services/services/attendant/handlers/mock_test.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
}
}