Files
cloud-services/pkg/flashpackversion/flashpack_version_update_test.go

437 lines
9.0 KiB
Go

package flashpackversion_test
import (
"testing"
"fiskerinc.com/modules/common"
"fiskerinc.com/modules/db/queries/mocks"
fv "fiskerinc.com/modules/flashpackversion"
"github.com/stretchr/testify/assert"
)
func TestFindCurrentFlashpackVersionForCar(t *testing.T) {
mockCars := setupMockCars()
car := common.Car{
VIN: "FISKER123",
Model: "Ocean",
Trim: "Base",
Year: 2023,
}
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "ADAS",
SupplierSWVersion: "ADASVersion2",
},
{
VIN: "FISKER123",
ECU: "ACUN",
SupplierSWVersion: "ACUNVersionA",
},
{
VIN: "FISKER123",
ECU: "BCM",
SupplierSWVersion: "BCMVersion",
},
{
VIN: "FISKER123",
ECU: "PDI",
SupplierSWVersion: "PDIVersion",
},
{
VIN: "FISKER123",
ECU: "OBC",
SupplierSWVersion: "PDUVersion",
},
{
VIN: "FISKER123",
ECU: "MCU",
SupplierSWVersion: "TBOXVersion",
},
}
flashpack, err := fv.FindCurrentFlashpackVersionForCar(&mockCars, car)
assert.Nil(t, err)
assert.Equal(t, "46.14", flashpack)
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "ADAS",
SupplierSWVersion: "ADASVersion",
},
{
VIN: "FISKER123",
ECU: "ACUN",
SupplierSWVersion: "ACUNVersion",
},
{
VIN: "FISKER123",
ECU: "BCM",
SupplierSWVersion: "BCMVersion",
},
}
flashpack, err = fv.FindCurrentFlashpackVersionForCar(&mockCars, car)
assert.Nil(t, err)
assert.Equal(t, "", flashpack)
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "ADAS",
SupplierSWVersion: "ADASVersion1",
},
{
VIN: "FISKER123",
ECU: "ACUN",
SupplierSWVersion: "ACUNVersion",
},
{
VIN: "FISKER123",
ECU: "BCM",
SupplierSWVersion: "BCMVersion",
},
{
VIN: "FISKER123",
ECU: "PDI",
SupplierSWVersion: "PDIVersion",
},
}
flashpack, err = fv.FindCurrentFlashpackVersionForCar(&mockCars, car)
assert.Nil(t, err)
assert.Equal(t, "41.14", flashpack)
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "ADAS",
SupplierSWVersion: "ADASVersion1",
},
{
VIN: "FISKER123",
ECU: "ACUN",
SupplierSWVersion: "ACUNVersion0",
},
{
VIN: "FISKER123",
ECU: "BCM",
SupplierSWVersion: "BCMVersion",
},
{
VIN: "FISKER123",
ECU: "PDI",
SupplierSWVersion: "PDIVersion",
},
}
flashpack, err = fv.FindCurrentFlashpackVersionForCar(&mockCars, car)
assert.Nil(t, err)
assert.Equal(t, "39.14", flashpack)
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "PDI",
SupplierSWVersion: "PDIVersion",
},
}
flashpack, err = fv.FindCurrentFlashpackVersionForCar(&mockCars, car)
assert.Nil(t, err)
assert.Equal(t, "37.14", flashpack)
}
func TestFindCarECUsToUpdateForNextFlashpackNumber(t *testing.T) {
mockCars := setupMockCars()
car := common.Car{
VIN: "FISKER123",
Model: "Ocean",
Trim: "Base",
Year: 2023,
}
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "ADAS",
SupplierSWVersion: "ADASVersion0",
},
{
VIN: "FISKER123",
ECU: "ACUN",
SupplierSWVersion: "ACUNVersion0",
},
{
VIN: "FISKER123",
ECU: "PDI",
SupplierSWVersion: "PDIVersion",
},
}
ecus, err := fv.FindCarECUsToUpdateForNextFlashpackNumber(&mockCars, car, "41.14")
assert.Nil(t, err)
assert.Equal(t, []common.CarECUVersion{
{
CarECUName: "ADAS",
CarECUVersion: "ADASVersion",
},
{
CarECUName: "ACUN",
CarECUVersion: "ACUNVersion",
},
{
CarECUName: "BCM",
CarECUVersion: "BCMVersion",
},
}, ecus)
mockCars.SelectCarECUs = []common.CarECU{
{
VIN: "FISKER123",
ECU: "ADAS",
SupplierSWVersion: "ADASVersion",
},
{
VIN: "FISKER123",
ECU: "ACUN",
SupplierSWVersion: "ACUNVersion",
},
{
VIN: "FISKER123",
ECU: "PDI",
SupplierSWVersion: "PDIVersion",
},
{
VIN: "FISKER123",
ECU: "BCM",
SupplierSWVersion: "BCMVersion",
},
{
VIN: "FISKER123",
ECU: "OBC",
SupplierSWVersion: "PDUVersion",
},
}
ecus, err = fv.FindCarECUsToUpdateForNextFlashpackNumber(&mockCars, car, "44.14")
assert.Nil(t, err)
assert.Equal(t, []common.CarECUVersion{
{
CarECUName: "ADAS",
CarECUVersion: "ADASVersion1",
},
{
CarECUName: "ACUN",
CarECUVersion: "ACUNVersionA",
},
{
CarECUName: "ACUN",
CarECUVersion: "ACUNVersionB",
},
}, ecus)
}
func setupMockCars() mocks.MockCars {
return mocks.MockCars{
SelectResponse: &common.Car{VIN: "FISKER123", ICCID: "1111111111111111111F"},
SelectCarSettings: []common.CarSetting{},
SelectCarFlashpackVersions: []common.CarFlashpackVersion{
// 46.14
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion2",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersionA",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersionB",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "BCM",
CarECUVersion: "BCMVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "PDI",
CarECUVersion: "PDIVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "PDU",
CarECUVersion: "PDUVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "46.14",
CarECUName: "TBOX",
CarECUVersion: "TBOXVersion",
},
// 44.14
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "ADAS",
CarECUVersion: "ADASVersion1",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersionA",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "ACUN",
CarECUVersion: "ACUNVersionB",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "BCM",
CarECUVersion: "BCMVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "PDI",
CarECUVersion: "PDIVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "44.14",
CarECUName: "PDU",
CarECUVersion: "PDUVersion",
},
// 41.14
{
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: "41.14",
CarECUName: "BCM",
CarECUVersion: "BCMVersion",
},
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "41.14",
CarECUName: "PDI",
CarECUVersion: "PDIVersion",
},
// 39.14
{
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",
},
// 37.14
{
CarModel: "Ocean",
CarTrim: "Base",
CarYear: 2023,
Flashpack: "37.14",
CarECUName: "PDI",
CarECUVersion: "PDIVersion",
},
},
}
}