Add depot, attendant, jetfire, optimus, ota services with kustomize overlays
This commit is contained in:
776
services/attendant/handlers/car_update_progress_test.go
Normal file
776
services/attendant/handlers/car_update_progress_test.go
Normal file
@@ -0,0 +1,776 @@
|
||||
package handlers_test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/fiskerinc/cloud-services/services/attendant/controllers"
|
||||
"github.com/fiskerinc/cloud-services/services/attendant/services"
|
||||
|
||||
"github.com/fiskerinc/cloud-services/pkg/common"
|
||||
"github.com/fiskerinc/cloud-services/pkg/common/manifestfingerprintparams"
|
||||
"github.com/fiskerinc/cloud-services/pkg/db/queries/mocks"
|
||||
"github.com/fiskerinc/cloud-services/pkg/redis/tester"
|
||||
th "github.com/fiskerinc/cloud-services/pkg/testhelper"
|
||||
"github.com/fiskerinc/cloud-services/pkg/utils/elptr"
|
||||
vconfig "github.com/fiskerinc/cloud-services/pkg/vehicleconfig"
|
||||
)
|
||||
|
||||
var (
|
||||
schemaToTRex = "file://" + th.GetSchemaDirPath() + "/trex/RXMessage.json"
|
||||
schemaToHMI = "file://" + th.GetSchemaDirPath() + "/hmi/RXMessage.json"
|
||||
)
|
||||
|
||||
func TestCarUpdateProgress(t *testing.T) {
|
||||
testGetSetResult := `["valid-cognito-id-1","valid-cognito-id-2"]`
|
||||
testVIN := "JH4KA7680RC01"
|
||||
mobile1Key := "3:valid-cognito-id-1"
|
||||
mobile2Key := "3:valid-cognito-id-2"
|
||||
hmiKey := "2:JH4KA7680RC01"
|
||||
trexKey := common.TRex.Key(testVIN)
|
||||
carupdateKey := "carupdate:297"
|
||||
var bhex common.BinaryHex
|
||||
expectedExpire := 3600
|
||||
bhex = []byte("test")
|
||||
|
||||
fingerprintTime, _ := time.Parse("02/01/06", "19/01/24")
|
||||
fpp := manifestfingerprintparams.MockFingerprintParamer{
|
||||
ManifestSerialValue: "00000000000000000",
|
||||
Time: fingerprintTime,
|
||||
}
|
||||
manifestfingerprintparams.SetFPParams(&fpp)
|
||||
|
||||
manifest := common.UpdateManifest{
|
||||
ID: 1,
|
||||
Name: "test",
|
||||
Version: "MANIFEST_VERSION",
|
||||
SUMS: "2023.10.01.00.E",
|
||||
Description: "description",
|
||||
ReleaseNotes: "http://releasenotes.com",
|
||||
Country: "US",
|
||||
PowerTrain: "MD23",
|
||||
Restraint: "None",
|
||||
Model: "Ocean",
|
||||
Trim: "Sport",
|
||||
Year: 2022,
|
||||
BodyType: "truck",
|
||||
RollbackEnabled: true,
|
||||
Type: "standard",
|
||||
ECUs: []*common.UpdateManifestECU{
|
||||
{
|
||||
ECU: "ICC",
|
||||
Version: "version",
|
||||
HWVersions: []string{"hardware_version"},
|
||||
Mode: "D",
|
||||
SelfDownload: true,
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "fileid",
|
||||
URL: "http://download.com",
|
||||
Filename: "filename.bin",
|
||||
FileSize: 10000,
|
||||
FileType: common.Software,
|
||||
WriteRegionID: 2222,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
ID: 2000,
|
||||
Offset: 10000,
|
||||
Length: 20,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
{
|
||||
ECU: "ADAS",
|
||||
Version: "version",
|
||||
HWVersions: []string{"hardware_version"},
|
||||
Mode: "A",
|
||||
InstallPriority: 10,
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "fileid",
|
||||
URL: "http://download.com",
|
||||
Filename: "adas.bin",
|
||||
FileSize: 9999,
|
||||
FileType: common.Software,
|
||||
WriteRegionID: 9999,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
ID: 8888,
|
||||
Offset: 8888,
|
||||
Length: 8888,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
},
|
||||
ECCKeys: &common.ECCKeys{
|
||||
ECU: "ADAS",
|
||||
PrivKey1: &bhex,
|
||||
PrivKey2: &bhex,
|
||||
PrivKey3: &bhex,
|
||||
PubKey1: &bhex,
|
||||
PubKey2: &bhex,
|
||||
PubKey3: &bhex,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
{
|
||||
ECU: "ECUA",
|
||||
Version: "version",
|
||||
HWVersions: []string{"hardware_version"},
|
||||
Mode: "A",
|
||||
InstallPriority: 5,
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "fileid",
|
||||
URL: "http://download.com",
|
||||
Filename: "adas.bin",
|
||||
FileSize: 9999,
|
||||
FileType: common.Software,
|
||||
WriteRegionID: 9999,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
ID: 8888,
|
||||
Offset: 8888,
|
||||
Length: 8888,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
{
|
||||
FileID: "SHOULD_NOT_BE_IN_UPDATE",
|
||||
URL: "http://download.com/SHOULD_NOT_BE_IN_UPDATE.bin",
|
||||
FileSize: 1000,
|
||||
Checksum: "AAAAAAA",
|
||||
FileType: common.Calibration,
|
||||
EraseRegionID: 200,
|
||||
EraseRegion: &common.MemoryRegion{
|
||||
Offset: 201,
|
||||
Length: 202,
|
||||
},
|
||||
Parsed: elptr.ElPtr(false),
|
||||
WriteRegionID: 100,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 101,
|
||||
Length: 102,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
{
|
||||
FileID: "MUST_BE_IN_UPDATE",
|
||||
URL: "http://download.com/MUST_BE_IN_UPDATE.bin",
|
||||
FileSize: 1000,
|
||||
Checksum: "AAAAAAA",
|
||||
FileType: common.Calibration,
|
||||
EraseRegionID: 200,
|
||||
EraseRegion: &common.MemoryRegion{
|
||||
Offset: 201,
|
||||
Length: 202,
|
||||
},
|
||||
Parsed: elptr.ElPtr(true),
|
||||
WriteRegionID: 100,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 101,
|
||||
Length: 102,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
},
|
||||
ECCKeys: &common.ECCKeys{
|
||||
ECU: "ECUA",
|
||||
PrivKey1: &bhex,
|
||||
PrivKey2: &bhex,
|
||||
PrivKey3: &bhex,
|
||||
PubKey1: &bhex,
|
||||
PubKey2: &bhex,
|
||||
PubKey3: &bhex,
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
},
|
||||
DBModelBase: th.Timestamp,
|
||||
}
|
||||
ecuaRollback := []*common.UpdateManifestECU{
|
||||
{
|
||||
ID: 100,
|
||||
UpdateManifestID: 200,
|
||||
ECU: "ECUA",
|
||||
Version: "VERSIONOLD",
|
||||
HWVersions: []string{"hardware_version"},
|
||||
Mode: "A",
|
||||
DBModelBase: th.Timestamp,
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "FILEIDOLD",
|
||||
UpdateManifestECUID: 1001,
|
||||
Filename: "FILENAMEOLD",
|
||||
URL: "URLOLD",
|
||||
FileType: common.Software,
|
||||
WriteRegionID: 700,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 701,
|
||||
Length: 702,
|
||||
},
|
||||
FileSize: 240,
|
||||
DBModelBase: th.Timestamp,
|
||||
},
|
||||
},
|
||||
ECCKeys: &common.ECCKeys{
|
||||
ECU: "ECUA",
|
||||
PrivKey1: &bhex,
|
||||
PrivKey2: &bhex,
|
||||
PrivKey3: &bhex,
|
||||
PubKey1: &bhex,
|
||||
PubKey2: &bhex,
|
||||
PubKey3: &bhex,
|
||||
},
|
||||
},
|
||||
}
|
||||
mockDB := &services.DB{}
|
||||
mockCars := &mocks.MockCars{}
|
||||
mockCarUpdates := &mocks.MockCarUpdates{
|
||||
SelectCarUpdateResponse: &common.CarUpdate{
|
||||
UpdateManifestID: 816,
|
||||
UpdateManifest: &common.UpdateManifest{
|
||||
ID: 816,
|
||||
},
|
||||
},
|
||||
}
|
||||
mockManifests := &mocks.MockUpdateManifests{
|
||||
ECUUpdatesMock: func(man *common.UpdateManifestECU, vin string) ([]*common.UpdateManifestECU, error) {
|
||||
if man.ECU == "ECUA" {
|
||||
return ecuaRollback, nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
},
|
||||
}
|
||||
mockKeys := &mocks.MockEccKeys{
|
||||
MockListResponse: []common.ECCKeys{
|
||||
{
|
||||
ECU: "PDU",
|
||||
PrivKey1: &bhex,
|
||||
PrivKey2: &bhex,
|
||||
PrivKey3: &bhex,
|
||||
PubKey1: &bhex,
|
||||
PubKey2: &bhex,
|
||||
PubKey3: &bhex,
|
||||
},
|
||||
{
|
||||
ECU: "TBOX",
|
||||
PrivKey1: &bhex,
|
||||
PrivKey2: &bhex,
|
||||
PrivKey3: &bhex,
|
||||
PubKey1: &bhex,
|
||||
PubKey2: &bhex,
|
||||
PubKey3: &bhex,
|
||||
},
|
||||
},
|
||||
}
|
||||
mockDB.SetCars(mockCars)
|
||||
mockDB.SetCarUpdates(mockCarUpdates)
|
||||
mockDB.SetECCKeys(mockKeys)
|
||||
mockDB.SetManifests(mockManifests)
|
||||
|
||||
mockFoa := FoaServiceMock{}
|
||||
services.SetFoaService(&mockFoa)
|
||||
|
||||
mockRedis := tester.NewRedisMock()
|
||||
mockKeepAwake := services.NewKeepAwakeService()
|
||||
services.SetRedisClientPool(tester.NewMockClientPool(mockRedis))
|
||||
mockSap := vconfig.SAPServiceMock{GetConfigurationMock: func(vin string) (common.SAPResponse, error) {
|
||||
return common.SAPResponse{
|
||||
ModelYear: 2023,
|
||||
ModelType: "Ocean",
|
||||
VersionDuringModelYear: "1",
|
||||
Features: []common.SAPFeature{
|
||||
{
|
||||
FamilyCode: "FamilyCode1",
|
||||
FeatureCode: "FeatureCode1",
|
||||
},
|
||||
{
|
||||
FamilyCode: "FamilyCode2",
|
||||
FeatureCode: "FeatureCode2",
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
}}
|
||||
mockConf := vconfig.ConfigMock{GetVODCDSCodingDataMock: func(request common.VODCDSRequest) (map[string]string, error) {
|
||||
return map[string]string{
|
||||
"ECUA": "config",
|
||||
"VOD": "00a62299027600000101012200010100010001010101000000000000000000fffeffff000101010101010101010100010001010101000101010100000000000000000000000000010101000100000100010101000201010101000101020101000101010200010101010101010101000101010100010001010101010101010201010000000000000100000101ff00000001010200000000000003ffffffff0000000201010200000100000000000000000000000000000000000000000000000000000000000000000001202310010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}, nil
|
||||
}}
|
||||
|
||||
services.SetSapService(mockSap)
|
||||
services.SetVehicleConfig(mockConf)
|
||||
schemaTesterHMI := th.NewSchemaTestHelper(t, schemaToHMI)
|
||||
schemaTesterTRex := th.NewSchemaTestHelper(t, schemaToTRex)
|
||||
|
||||
tests := []AttendentRouteTestCase{
|
||||
{
|
||||
Name: "[HMI] install_error",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.HMI,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":5,"total_files":10,"msg":"install_error","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":5,"status":"install_failed","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_failed","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_failed","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_failed","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[HMI] download_completed",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.HMI,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"ICC","file_current":null,"file_total":null,"package_current":920639485,"package_total":920639485,"installed":null,"total_files":null,"msg":"download_completed","err":null}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":920639485,"ecu":"ICC","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"package_download_complete","total_files":0,"total_size":920639485}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
trexKey: `{"handler":"update_manifest","data":{"ecu_updates":[{"name":"ICC","version":"version","hw_version":"hardware_version","self_download":true},{"name":"ECUA","version":"version","hw_version":"hardware_version","configuration":"config","files":[{"file_id":"fileid","url":"http://download.com","file_size":9999,"type":"software","write_region":{"offset":8888,"length":8888}},{"file_id":"MUST_BE_IN_UPDATE","url":"http://download.com/MUST_BE_IN_UPDATE.bin","file_size":1000,"checksum":"AAAAAAA","type":"calibration","write_region":{"offset":101,"length":102},"erase_region":{"offset":201,"length":202}}],"rollback":[{"version":"VERSIONOLD","files":[{"file_id":"FILEIDOLD","url":"URLOLD","file_size":240,"type":"software","write_region":{"offset":701,"length":702}}]}],"ecc_keys":{"level_1":"74657374","level_2":"74657374","level_3":"74657374"}},{"name":"ADAS","version":"version","hw_version":"hardware_version","files":[{"file_id":"fileid","url":"http://download.com","file_size":9999,"type":"software","write_region":{"offset":8888,"length":8888}}],"ecc_keys":{"level_1":"74657374","level_2":"74657374","level_3":"74657374"}}],"fingerprint":"240119FISKER00000000000000000","car_update_id":297,"rollback":true,"type":"standard","vod":"01012299027600000101012200010100010001010101000000000000000000fffeffff000101010101010101010100010001010101000101010100000000000000000000000000010101000100000100010101000201010101000101020101000101010200010101010101010101000101010100010001010101010101010201010000000000000100000101ff00000001010200000000000003ffffffff00000002010102000001000000000000000000000000000000000000000000000000000000000000000000012023100100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021","update_duration":30}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":920639485,"package_total":920639485,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ICC","msg":"package_download_complete","err":0}}`,
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":920639485,"package_total":920639485,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ICC","msg":"package_download_complete","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":920639485,"package_total":920639485,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ICC","msg":"package_download_complete","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
MockLoadManifest: &manifest,
|
||||
},
|
||||
{
|
||||
Name: "[HMI] manifest_succeeded",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.HMI,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"ICC","file_current":null,"file_total":null,"package_current":920639485,"package_total":920639485,"installed":null,"total_files":null,"msg":"manifest_succeeded","err":null}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":920639485,"ecu":"ICC","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"manifest_succeeded","total_files":0,"total_size":920639485}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":920639485,"package_total":920639485,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ICC","msg":"manifest_succeeded","err":0}}`,
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":920639485,"package_total":920639485,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ICC","msg":"manifest_succeeded","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":920639485,"package_total":920639485,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ICC","msg":"manifest_succeeded","err":0}}`,
|
||||
"1:JH4KA7680RC01": `{"handler":"read_ecu_versions","data":{"ecu_name":"*"}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
SelectCarUpdate: &common.CarUpdate{
|
||||
UpdateManifest: &validUpdateManifest,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] manifest_received",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"msg":"manifest_received","err":-6,"extra_info":""}`,
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"manifest_received","err":-6}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"manifest_received","err":-6}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"manifest_received","err":-6}}`,
|
||||
},
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"","errorcode":-6,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"manifest_received","total_files":0,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] manifest_accepted",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"msg":"manifest_accepted","err":-7,"extra_info":""}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"","errorcode":-7,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"manifest_accepted","total_files":0,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"manifest_accepted","err":-7}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"manifest_accepted","err":-7}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"manifest_accepted","err":-7}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] download_started",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"msg":"download_started","err":-14,"extra_info":""}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"","errorcode":-14,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"downloading","total_files":0,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"downloading","err":-14}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"downloading","err":-14}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"downloading","err":-14}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] downloading",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"ADAS","file_current":1048576,"file_total":1264672,"package_current":1048576,"package_total":2529856,"msg":"downloading","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":1048576,"ecu":"ADAS","errorcode":0,"file_size":1048576,"file_total":1264672,"id":297,"installed":0,"status":"downloading","total_files":0,"total_size":2529856}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1048576,"file_total":1264672,"package_current":1048576,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ADAS","msg":"downloading","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1048576,"file_total":1264672,"package_current":1048576,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ADAS","msg":"downloading","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":1048576,"file_total":1264672,"package_current":1048576,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ADAS","msg":"downloading","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] download_completed ECU 1",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"ADAS","file_current":1264672,"file_total":1264672,"package_current":1264672,"package_total":2529856,"msg":"download_completed","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":1264672,"ecu":"ADAS","errorcode":0,"file_size":1264672,"file_total":1264672,"id":297,"installed":0,"status":"downloading","total_files":0,"total_size":2529856}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1264672,"file_total":1264672,"package_current":1264672,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ADAS","msg":"downloading","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1264672,"file_total":1264672,"package_current":1264672,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ADAS","msg":"downloading","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":1264672,"file_total":1264672,"package_current":1264672,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"ADAS","msg":"downloading","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] download_started ECU 2",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"EKS","file_current":0,"file_total":1265184,"package_current":1264672,"package_total":2529856,"msg":"download_started","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":1264672,"ecu":"EKS","errorcode":0,"file_size":0,"file_total":1265184,"id":297,"installed":0,"status":"downloading","total_files":0,"total_size":2529856}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":1265184,"package_current":1264672,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"downloading","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":1265184,"package_current":1264672,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"downloading","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":1265184,"package_current":1264672,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"downloading","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] downloading ECU 2",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"EKS","file_current":1048576,"file_total":1265184,"package_current":2313248,"package_total":2529856,"msg":"downloading","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":2313248,"ecu":"EKS","errorcode":0,"file_size":1048576,"file_total":1265184,"id":297,"installed":0,"status":"downloading","total_files":0,"total_size":2529856}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1048576,"file_total":1265184,"package_current":2313248,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"downloading","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1048576,"file_total":1265184,"package_current":2313248,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"downloading","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":1048576,"file_total":1265184,"package_current":2313248,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"downloading","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] download_completed ECU 2",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"EKS","file_current":1265184,"file_total":1265184,"package_current":2529856,"package_total":2529856,"msg":"download_completed","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":2529856,"ecu":"EKS","errorcode":0,"file_size":1265184,"file_total":1265184,"id":297,"installed":0,"status":"package_download_complete","total_files":0,"total_size":2529856}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1265184,"file_total":1265184,"package_current":2529856,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"package_download_complete","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":1265184,"file_total":1265184,"package_current":2529856,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"package_download_complete","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":1265184,"file_total":1265184,"package_current":2529856,"package_total":2529856,"installed":0,"total_files":0,"car_update_id":297,"ecu":"EKS","msg":"package_download_complete","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] package_download_complete",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"msg":"download_completed","err":-15,"extra_info":""}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"","errorcode":-15,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"package_download_complete","total_files":0,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"package_download_complete","err":-15}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"package_download_complete","err":-15}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"package_download_complete","err":-15}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] download_failed",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","file_current":0,"file_total":100,"package_current":0,"package_total":1000,"msg":"download_failed","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":100,"id":297,"installed":0,"status":"download_failed","total_files":0,"total_size":1000}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":100,"package_current":0,"package_total":1000,"installed":0,"total_files":0,"car_update_id":297,"ecu":"TEST","msg":"download_failed","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":100,"package_current":0,"package_total":1000,"installed":0,"total_files":0,"car_update_id":297,"ecu":"TEST","msg":"download_failed","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":100,"package_current":0,"package_total":1000,"installed":0,"total_files":0,"car_update_id":297,"ecu":"TEST","msg":"download_failed","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] install_started",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":0,"total_files":10,"msg":"install_started","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"installing","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"installing","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"installing","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"installing","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] installing",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":5,"total_files":10,"msg":"installing","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":5,"status":"installing","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"installing","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"installing","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"installing","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] install_succeeded ECU",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":10,"total_files":10,"msg":"install_succeeded"}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":10,"status":"package_install_complete","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"package_install_complete","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"package_install_complete","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"package_install_complete","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] package_install_complete",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"msg":"install_succeeded","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":0,"status":"installing","total_files":0,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"installing","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"installing","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":0,"total_files":0,"car_update_id":297,"ecu":"","msg":"installing","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] install_failed",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":5,"total_files":10,"msg":"install_failed","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":5,"status":"install_failed","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_failed","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_failed","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_failed","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] requirements_failed",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":5,"total_files":10,"msg":"requirements_failed","err":0}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":5,"status":"requirements_failed","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"requirements_failed","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"requirements_failed","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":5,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"requirements_failed","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] install_scheduled ECU",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":10,"total_files":10,"msg":"install_scheduled"}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":10,"status":"install_scheduled","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_scheduled","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_scheduled","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"install_scheduled","err":0}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "[TREX] manifest_succeeded",
|
||||
RedisTestCase: tester.RedisTestCase{
|
||||
Device: common.TRex,
|
||||
DeviceKey: testVIN,
|
||||
PayloadData: `{"car_update_id":297,"ecu":"TEST","installed":10,"total_files":10,"msg":"manifest_succeeded"}`,
|
||||
ExpectedCaches: map[string]tester.ExpiringCacheResult{
|
||||
carupdateKey: {
|
||||
Value: `{"current_size":0,"ecu":"TEST","errorcode":0,"file_size":0,"file_total":0,"id":297,"installed":10,"status":"manifest_succeeded","total_files":10,"total_size":0}`,
|
||||
Expires: expectedExpire,
|
||||
},
|
||||
},
|
||||
ExpectedMessages: map[string]string{
|
||||
mobile1Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"manifest_succeeded","err":0}}`,
|
||||
mobile2Key: `{"handler":"car_update_status","data":{"vin":"JH4KA7680RC01","file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"manifest_succeeded","err":0}}`,
|
||||
hmiKey: `{"handler":"car_update_status","data":{"file_current":0,"file_total":0,"package_current":0,"package_total":0,"installed":10,"total_files":10,"car_update_id":297,"ecu":"TEST","msg":"manifest_succeeded","err":0}}`,
|
||||
"1:JH4KA7680RC01": `{"handler":"read_ecu_versions","data":{"ecu_name":"*"}}`,
|
||||
},
|
||||
MockRedisGetSet: testGetSetResult,
|
||||
},
|
||||
SelectCarUpdate: &common.CarUpdate{
|
||||
UpdateManifest: &validUpdateManifest,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i := range tests {
|
||||
mockRedis.Reset()
|
||||
test := &tests[i]
|
||||
test.SetupRedis(mockRedis)
|
||||
test.SetupDB(mockCars, mockCarUpdates, test)
|
||||
|
||||
redisPool := tester.NewMockClientPool(mockRedis)
|
||||
handler := controllers.NewCarUpdateProgress(redisPool, mockKeepAwake, mockDB, test.Device)
|
||||
if handler == nil {
|
||||
t.Error(errors.New("NewCarUpdateProgress cannot handle device %v"))
|
||||
continue
|
||||
}
|
||||
err := handler.Process(test.DeviceKey, []byte(test.PayloadData))
|
||||
|
||||
test.CheckHandlerError(t, test.Name, err)
|
||||
test.Validate(t, test.Name, mockRedis)
|
||||
|
||||
for key, m := range test.RedisTestCase.ExpectedMessages {
|
||||
name := fmt.Sprintf("%s %s", test.Name, key)
|
||||
if strings.Contains(key, "1:") {
|
||||
schemaTesterTRex.ValidateSchemaObject(name, []byte(m))
|
||||
} else if strings.Contains(key, "2:") {
|
||||
schemaTesterHMI.ValidateSchemaObject(name, []byte(m))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type FoaServiceMock struct{}
|
||||
|
||||
func (f *FoaServiceMock) OtaUpdateStatus(vin string, carUpdate *common.CarUpdate, status *common.CarUpdateProgress) (*http.Response, error) {
|
||||
return &http.Response{StatusCode: 200}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user