Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
295
pkg/common/hmi_rx_test.go
Normal file
295
pkg/common/hmi_rx_test.go
Normal file
@@ -0,0 +1,295 @@
|
||||
package common_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"fiskerinc.com/modules/common"
|
||||
"fiskerinc.com/modules/common/dbbasemodel"
|
||||
"fiskerinc.com/modules/common/handlers"
|
||||
"fiskerinc.com/modules/testhelper"
|
||||
)
|
||||
|
||||
func TestHMIRXMessages(t *testing.T) {
|
||||
schema := "file://" + testhelper.GetSchemaDirPath() + "/hmi/RXMessage.json"
|
||||
now := time.Now()
|
||||
manifest := common.UpdateManifest{
|
||||
ID: 1234567890,
|
||||
Name: "Test Update Manifest",
|
||||
Version: "1.2.3",
|
||||
Description: "This is a test manifest",
|
||||
ReleaseNotes: "https://fiskerinc.com",
|
||||
Fingerprint: "8fe27f7fb079ebe06db5f88586b98797",
|
||||
Type: "standard",
|
||||
Country: "US",
|
||||
PowerTrain: "MD23",
|
||||
Restraint: "None",
|
||||
Model: "Ocean",
|
||||
Trim: "Sport",
|
||||
Year: 2022,
|
||||
BodyType: "truck",
|
||||
ECUs: []*common.UpdateManifestECU{
|
||||
{
|
||||
ECU: "ICC",
|
||||
Version: "1.2.3",
|
||||
CurrentVersion: "1.0.0",
|
||||
HWVersions: []string{"10000"},
|
||||
ConfigurationMask: "04d923318b8e1517a9cc8b52af11b051",
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "XXXXXXXXXX",
|
||||
URL: "https://fiskerinc.com/ICC.bin",
|
||||
Checksum: "CHECKSUM",
|
||||
FileType: common.Software,
|
||||
FileSize: 90,
|
||||
WriteRegionID: 100,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 101,
|
||||
Length: 102,
|
||||
},
|
||||
EraseRegionID: 200,
|
||||
EraseRegion: &common.MemoryRegion{
|
||||
Offset: 201,
|
||||
Length: 202,
|
||||
},
|
||||
FileKey: &common.FileKeyResponse{
|
||||
FileID: "fileid",
|
||||
Key: "key",
|
||||
Auth: "auth",
|
||||
Nonce: "nonce",
|
||||
Error: "NoError",
|
||||
},
|
||||
},
|
||||
},
|
||||
Rollback: []*common.UpdateManifestECU{
|
||||
{
|
||||
Version: "1.2.3",
|
||||
ConfigurationMask: "04d923318b8e1517a9cc8b52af11b051",
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "XXXXXXXXXX",
|
||||
URL: "https://fiskerinc.com/settings.config",
|
||||
FileType: common.Calibration,
|
||||
Checksum: "CHECKSUM",
|
||||
FileSize: 100,
|
||||
WriteRegionID: 100,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 101,
|
||||
Length: 102,
|
||||
},
|
||||
EraseRegionID: 200,
|
||||
EraseRegion: &common.MemoryRegion{
|
||||
Offset: 201,
|
||||
Length: 202,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
CarUpdateID: 1,
|
||||
}
|
||||
manifest.Scrub(common.HMI)
|
||||
|
||||
tests := []testhelper.SchemaTest{
|
||||
{
|
||||
Name: "TestHMIUpdateManifest",
|
||||
Object: common.Message{
|
||||
Handler: "update_manifest",
|
||||
Data: manifest,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileMapDestinationSource",
|
||||
Object: common.Message{
|
||||
Handler: "map_destination",
|
||||
Data: common.MapDestinationSource{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
Name: "Fisker Inc",
|
||||
Address: &common.TomTomAddress{
|
||||
StreetNumber: "3030",
|
||||
StreetName: "17th St",
|
||||
LocalName: "San Francisco",
|
||||
PostalCode: "94110",
|
||||
CountrySubdivisionName: "California",
|
||||
CountryCodeIso3: "USA",
|
||||
},
|
||||
Coordinates: common.MapCoordinates{
|
||||
Latitude: 37.0,
|
||||
Longitude: -122.0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileMapRouteSource",
|
||||
Object: common.Message{
|
||||
Handler: "map_route",
|
||||
Data: common.MapRouteSource{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
Waypoints: []common.MapWaypoint{
|
||||
{
|
||||
Type: "Restaurant",
|
||||
Title: "Test Restaurant",
|
||||
MapCoordinates: common.MapCoordinates{
|
||||
Latitude: 111,
|
||||
Longitude: 222,
|
||||
},
|
||||
},
|
||||
{
|
||||
Type: "Park",
|
||||
Title: "Test Park",
|
||||
MapCoordinates: common.MapCoordinates{
|
||||
Latitude: 333.333,
|
||||
Longitude: 444.444,
|
||||
},
|
||||
},
|
||||
},
|
||||
Route: []common.MapCoordinates{
|
||||
{
|
||||
Latitude: 123,
|
||||
Longitude: 456,
|
||||
},
|
||||
{
|
||||
Latitude: 999,
|
||||
Longitude: 888,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMIProfiles",
|
||||
Object: common.Message{
|
||||
Handler: "profiles",
|
||||
Data: []common.CarToDriverModel{{
|
||||
User: common.UserProfile{
|
||||
FirstName: "First",
|
||||
LastName: "Last",
|
||||
Email: "test@test.com",
|
||||
Phone: "1234567890",
|
||||
},
|
||||
DriverID: "valid-cognito-id-1",
|
||||
Role: "DRIVER",
|
||||
Settings: []common.CarSetting{{
|
||||
Name: "TESTSETTING",
|
||||
Value: "TESTVALUE",
|
||||
Type: "string",
|
||||
DBModelBase: dbbasemodel.DBModelBase{
|
||||
UpdatedAt: &now,
|
||||
},
|
||||
}},
|
||||
Subscriptions: []common.Subscription{{
|
||||
Name: "test",
|
||||
Destination: "ICC",
|
||||
Expires: time.Date(2021, 10, 30, 8, 35, 0, 0, time.UTC),
|
||||
}},
|
||||
}},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMISettingsUpdate",
|
||||
Object: common.Message{
|
||||
Handler: "settings_update",
|
||||
Data: common.HMISettingsUpdate{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
Settings: []common.CarSetting{{
|
||||
Name: "TESTSETTING",
|
||||
Value: "TESTVALUE",
|
||||
Type: "string",
|
||||
DBModelBase: dbbasemodel.DBModelBase{
|
||||
UpdatedAt: &now,
|
||||
},
|
||||
}},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMISubscriptionsUpdate",
|
||||
Object: common.Message{
|
||||
Handler: "subscriptions_update",
|
||||
Data: common.HMISubscriptionUpdate{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
Subscriptions: []common.Subscription{{
|
||||
Name: "test",
|
||||
Destination: "ICC",
|
||||
Expires: time.Date(2021, 10, 30, 8, 35, 0, 0, time.UTC),
|
||||
}},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMIPOIs",
|
||||
Object: common.Message{
|
||||
Handler: "user_pois_get",
|
||||
Data: common.HMIPOIRequestMessage{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMIPOICreate",
|
||||
Object: common.Message{
|
||||
Handler: "user_poi_create",
|
||||
Data: common.HMIPOIMessage{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
UserPOI: common.PointOfInterest{
|
||||
Name: "TestPOI",
|
||||
Location: common.POILocation{
|
||||
Latitude: 1.23,
|
||||
Longitude: 4.56,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMIPOIEdit",
|
||||
Object: common.Message{
|
||||
Handler: "user_poi_edit",
|
||||
Data: common.HMIPOIMessage{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
UserPOI: common.PointOfInterest{
|
||||
Name: "TestPOI",
|
||||
Location: common.POILocation{
|
||||
Latitude: 8.88,
|
||||
Longitude: 9.99,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMIPOIDelete",
|
||||
Object: common.Message{
|
||||
Handler: "user_poi_delete",
|
||||
Data: common.HMIPOIDeleteMessage{
|
||||
DriverID: "valid-cognito-id-1",
|
||||
Name: "TestPOI",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHMIError",
|
||||
Object: common.Message{
|
||||
Handler: "error",
|
||||
Data: common.MessageString{
|
||||
Message: "disconnected by duplicate ID",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestCancelUpdateManifest",
|
||||
Object: common.Message{
|
||||
Handler: handlers.UpdateManifestCancel,
|
||||
Data: common.CarUpdateRequest{
|
||||
CarUpdateID: 1000,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
testhelper.NewSchemaTestHelper(t, schema).
|
||||
RunSchemaTests(tests)
|
||||
}
|
||||
Reference in New Issue
Block a user