Files
cloud-services/pkg/db/queries/mocks/cars.go

517 lines
12 KiB
Go

package mocks
import (
"github.com/go-pg/pg/v10/orm"
"fiskerinc.com/modules/common"
"fiskerinc.com/modules/db/queries"
"fiskerinc.com/modules/validator"
"github.com/jinzhu/copier"
)
// CarUpdate query methods
type MockCars struct {
SelectResponse *common.Car
SelectC2DResponse *common.CarToDriver
SelectCarsResponse []common.Car
SelectCarECUs []common.CarECU
SelectCarsForDrivers []common.CarToDriver
SelectCarsForDriver common.CarToDriver
SelectCarSettings []common.CarSetting
SelectCarFlashpackVersions []common.CarFlashpackVersion
DBMockHelper
}
// GetSoftwareVersion implements queries.CarsInterface.
func (c *MockCars) GetSoftwareVersion(vin string) (result common.CarPKCOSVersion, err error) {
panic("unimplemented")
}
// GetICCIDs implements queries.CarsInterface.
func (c *MockCars) GetICCIDs(vins []string) (iccids []string, err error) {
panic("unimplemented")
}
// GetWhiteListCars implements queries.CarsInterface.
func (c *MockCars) GetWhiteListCars() (vins []string, err error) {
panic("unimplemented")
}
// BlacklistCars implements queries.CarsInterface.
func (c *MockCars) BlacklistCars(vin []string) (err error) {
panic("unimplemented")
}
// WhitelistCars implements queries.CarsInterface.
func (c *MockCars) WhitelistCars(vin []string, source string) (err error) {
panic("unimplemented")
}
var _ queries.CarsInterface = &MockCars{}
func (c *MockCars) UpdateICCID(car *common.Car) (orm.Result, error) {
if car.VIN == "" {
return nil, &validator.FieldError{
ErrorMsg: "VIN required",
}
}
c.ORMResponse = &MockORMResults{AffectedRows: 1}
return c.ORMResponse, c.Error
}
func (c *MockCars) UpdateSoldStatus(car *common.Car) (orm.Result, error) {
if car.VIN == "" {
return nil, &validator.FieldError{
ErrorMsg: "VIN required",
}
}
c.ORMResponse = &MockORMResults{AffectedRows: 1}
return c.ORMResponse, c.Error
}
func (c *MockCars) SelectByID(id int64) (*common.Car, error) {
return c.SelectResponse, c.Error
}
func (c *MockCars) SelectByVIN(vin string) (*common.Car, error) {
return c.SelectResponse, c.Error
}
func (c *MockCars) Search(filter *common.CarSearch, paging *queries.PageQueryOptions) ([]common.Car, error) {
c.LastFilter = filter
return c.Select(&filter.Car, paging)
}
func (c *MockCars) Select(filter *common.Car, paging *queries.PageQueryOptions) ([]common.Car, error) {
c.LastPaging = paging
return c.SelectCarsResponse, c.Error
}
func (c *MockCars) SelectOrInsert(car *common.Car) (bool, error) {
return c.SelectOrInsertResult, c.Error
}
func (c *MockCars) Delete(car *common.Car) (orm.Result, error) {
if car.VIN == "" {
return nil, &validator.FieldError{
ErrorMsg: "id required",
}
}
return c.ORMResponse, c.Error
}
func (c *MockCars) Update(car *common.Car) (orm.Result, error) {
if car.VIN == "" {
return nil, &validator.FieldError{
ErrorMsg: "VIN required",
}
}
return c.ORMResponse, c.Error
}
func (c *MockCars) CarsByManifest(manifest common.UpdateManifest, paging *queries.PageQueryOptions) ([]common.Car, error) {
c.LastPaging = paging
return c.SelectCarsResponse, c.Error
}
func (c *MockCars) CountCarsByManifest(manifest common.UpdateManifest) (int, error) {
return len(c.SelectCarsResponse), c.Error
}
func (c *MockCars) Insert(car *common.Car) (orm.Result, error) {
return c.ORMResponse, c.Error
}
func (c *MockCars) Load(car *common.Car) error {
if c.Error != nil {
return c.Error
}
return nil
}
func (c *MockCars) Count(filter *common.Car) (int, error) {
return len(c.SelectCarsResponse), c.Error
}
func (c *MockCars) SearchCount(filter *common.CarSearch) (int, error) {
return len(c.SelectCarsResponse), c.Error
}
func (c *MockCars) AddDriver(car *common.Car, driver *common.Driver, role string) (*common.CarToDriver, error) {
if c.Error != nil {
return nil, c.Error
}
if c.DriverError != nil {
return nil, c.DriverError
}
return c.SelectC2DResponse, nil
}
func (c *MockCars) SelectCarToDriver(filter *common.CarToDriver) ([]common.CarToDriver, error) {
if c.Error != nil {
return nil, c.Error
}
return c.SelectCarsForDrivers, nil
}
func (c *MockCars) GetDriver(id string) (common.CarToDriver, error) {
if c.Error != nil {
return c.SelectCarsForDriver, c.Error
}
return c.SelectCarsForDriver, nil
}
func (c *MockCars) GetDrivers(vin string) ([]common.CarToDriver, error) {
if c.Error != nil {
return nil, c.Error
}
return c.SelectCarsForDrivers, nil
}
func (c *MockCars) RemoveDriver(vin string, driverID string) (orm.Result, error) {
if c.Error != nil {
return c.ORMResponse, c.Error
}
return c.ORMResponse, nil
}
func (c *MockCars) GetTRexSetting(vin string) (common.TRexSetting, error) {
tRexSetting := common.TRexSetting{}
if c.Error != nil {
return tRexSetting, c.Error
}
return tRexSetting, nil
}
func (c *MockCars) GetModels() ([]string, error) {
if c.Error != nil {
return nil, c.Error
}
return []string{"1G1FP87S3GN100062"}, nil
}
func (c *MockCars) GetYears() ([]int, error) {
if c.Error != nil {
return nil, c.Error
}
return []int{3000}, nil
}
func (c *MockCars) SetSetting(setting *common.CarSetting) (orm.Result, error) {
if c.Error != nil {
return c.ORMResponse, c.Error
}
return c.ORMResponse, nil
}
func (c *MockCars) GetVehicleSpecificSettings(driver *common.CarToDriver) ([]common.CarSetting, error) {
return c.SelectCarSettings, c.Error
}
func (c *MockCars) GetSettings(driver *common.CarToDriver) ([]common.CarSetting, error) {
return []common.CarSetting{}, c.Error
}
func (c *MockCars) DeleteSetting(setting *common.CarSetting) (orm.Result, error) {
return c.ORMResponse, c.Error
}
func (c *MockCars) UpdateCarECU(ecu *common.CarECU) error {
return c.Error
}
func (c *MockCars) UpdateCarECUs(ecus []common.CarECU) error {
return c.Error
}
func (c *MockCars) InsertCarECUs(ecus []common.CarECU) error {
return c.Error
}
func (c *MockCars) uniqueFilter() []common.CarECU {
seen := make(map[string]bool)
filteredECUs := make([]common.CarECU, 0)
for _, ecu := range c.SelectCarECUs {
if !seen[ecu.VIN+ecu.ECU] {
filteredECUs = append(filteredECUs, ecu)
seen[ecu.VIN+ecu.ECU] = true
}
}
return filteredECUs
}
func (c *MockCars) GetCarECUs(filter common.CarECUFilter, paging *queries.PageQueryOptions) ([]common.CarECU, error) {
copiedList := []common.CarECU{}
copier.CopyWithOption(&copiedList, &c.SelectCarECUs, copier.Option{DeepCopy: true})
if filter.Search != "" {
return []common.CarECU{copiedList[0]}, c.Error
}
if filter.Unique {
return c.uniqueFilter(), c.Error
}
return copiedList, c.Error
}
func (c *MockCars) GetCarECUsCount(filter common.CarECUFilter) (int, error) {
if filter.Search != "" {
return 1, c.Error
}
if filter.Unique {
return len(c.uniqueFilter()), c.Error
}
return len(c.SelectCarECUs), c.Error
}
func (c *MockCars) UpdateCarFlashpackVersion(vin string, flashpack string) (orm.Result, error) {
return c.ORMResponse, nil
}
func (c *MockCars) GetFlashpackVersions(carModel string, carTrim string, carYear int, options *queries.PageQueryOptions) ([]common.CarFlashpackVersionResponse, error) {
return []common.CarFlashpackVersionResponse{
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "43.19",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
},
}, nil
}
func (c *MockCars) GetFlashpackVersionsCount(carModel string, carTrim string, carYear int) (int, error) {
return 2, nil
}
func (c *MockCars) GetNextFlashpackVersion(carModel string, carTrim string, flashpack string) (*common.CarFlashpackVersionResponse, error) {
return &common.CarFlashpackVersionResponse{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
}, nil
}
func (c *MockCars) GetCarFlashpackVersionMappingsByModelTrim(carModel string, carTrim string, options *queries.PageQueryOptions) ([]common.CarFlashpackVersion, error) {
if c.SelectCarFlashpackVersions != nil {
return c.SelectCarFlashpackVersions, nil
}
return []common.CarFlashpackVersion{
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion1",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "BCM",
CarECUVersion: "BCMVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2024,
Flashpack: "11.0",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion4",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion0",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersion0",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "PDI",
CarECUVersion: "PDIVersion",
},
}, nil
}
func (c *MockCars) GetCarFlashpackVersionMappingsByModelTrimYearFlashpack(carModel string, carTrim string, carYear int, flashpack string, options *queries.PageQueryOptions) ([]common.CarFlashpackVersion, error) {
if c.SelectCarFlashpackVersions != nil {
return c.SelectCarFlashpackVersions, nil
}
return []common.CarFlashpackVersion{
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion1",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2024,
Flashpack: "11.0",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion4",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "BCM",
CarECUVersion: "BCMVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion0",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersion0",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "39.14",
CarECUName: "PDI",
CarECUVersion: "PDIVersion",
},
}, nil
}
func (c *MockCars) GetCarFlashpackVersionMappingsByModelTrimYearFlashpackCount(carModel string, carTrim string, carYear int, flashpack string) (int, error) {
if c.SelectCarFlashpackVersions != nil {
return len(c.SelectCarFlashpackVersions), nil
}
return 8, nil
}
func (c *MockCars) GetCarECUNamesByModelTrim(carModel string, carTrim string) ([]string, error) {
return []string{"ADAS", "ACU", "BMS"}, nil
}
func (c *MockCars) AddCarFlashpackVersionMappings(carFlashpackVersions []common.CarFlashpackVersion) error {
return nil
}
func (c *MockCars) DeleteFlashpackVersion(carModel string, carTrim string, carYear int, flashpack string) error {
return nil
}
func (c *MockCars) GetCarsForDriver(driverID string) ([]common.CarToDriver, error) {
return c.SelectCarsForDrivers, c.Error
}
func (c *MockCars) UpdateBLEKey(vin string, driverid string, blekey string) (common.DriverExternal, error) {
return common.DriverExternal{}, c.Error
}
func (c *MockCars) ECUUpdatedAt(ecu common.CarECU) (orm.Result, error) {
return c.ORMResponse, c.Error
}
func (c *MockCars) SetListResp(list interface{}) {
if list != nil {
c.SelectCarsResponse = list.([]common.Car)
} else {
c.SelectCarsResponse = nil
}
}
func (c *MockCars) SetLoadResp(item interface{}) {
if item != nil {
c.SelectResponse = item.(*common.Car)
} else {
c.SelectResponse = nil
}
}
func (c *MockCars) GetSoftwareAndPKCVersions(vins []string) (results []common.CarPKCOSVersion, err error) {
panic("unimplemented")
}