Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
267
pkg/common/mobile_rx_test.go
Normal file
267
pkg/common/mobile_rx_test.go
Normal file
@@ -0,0 +1,267 @@
|
||||
package common_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"fiskerinc.com/modules/common"
|
||||
"fiskerinc.com/modules/common/dbbasemodel"
|
||||
"fiskerinc.com/modules/testhelper"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func TestMobileRXMessages(t *testing.T) {
|
||||
schema := "file://" + testhelper.GetSchemaDirPath() + "/mobile/RXMessage.json"
|
||||
now := time.Now()
|
||||
|
||||
percent, maxMiles, temp, chTime, stateOfCharge := 100, 350, -11, 43, 40
|
||||
typ := "AC"
|
||||
|
||||
tests := []testhelper.SchemaTest{
|
||||
{
|
||||
Name: "TestMobileCarLocations",
|
||||
Object: common.Message{
|
||||
Handler: "car_locations",
|
||||
Data: []common.JSONCarLocation{
|
||||
{
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Altitude: 1,
|
||||
Latitude: 2,
|
||||
Longitude: 3,
|
||||
},
|
||||
{
|
||||
VIN: "1F15K3R45N3456789",
|
||||
Altitude: 100,
|
||||
Latitude: 200,
|
||||
Longitude: 300,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileDigitalTwin",
|
||||
Object: common.Message{
|
||||
Handler: "digital_twin",
|
||||
Data: common.JSONDigitalTwin{
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Online: true,
|
||||
OnlineHMI: true,
|
||||
VehicleSpeed: &common.VehicleSpeed{
|
||||
Speed: 123.4,
|
||||
},
|
||||
Battery: &common.JSONBattery{
|
||||
Percent: &percent,
|
||||
MaxMiles: &maxMiles,
|
||||
AvgCellTemperature: &temp,
|
||||
ChargeType: &typ,
|
||||
RemainingChargingTime: &chTime,
|
||||
StateOfCharge: &stateOfCharge,
|
||||
},
|
||||
Doors: &common.Doors{
|
||||
LeftFront: true,
|
||||
LeftRear: true,
|
||||
RightFront: false,
|
||||
RightRear: false,
|
||||
},
|
||||
Location: &common.Location{
|
||||
Altitude: 1000,
|
||||
Longitude: 1,
|
||||
Latitude: -1,
|
||||
},
|
||||
Locks: &common.Locks{
|
||||
Driver: true,
|
||||
All: false,
|
||||
},
|
||||
UpdatedAt: &time.Time{},
|
||||
Windows: &common.JSONWindows{
|
||||
LeftFront: 0,
|
||||
LeftRear: 25,
|
||||
LeftRearQuarter: 100,
|
||||
RightFront: 50,
|
||||
RightRear: 75,
|
||||
RightRearQuarter: 100,
|
||||
RearWindshield: 100,
|
||||
Sunroof: 100,
|
||||
},
|
||||
ClimateControl: &common.JSONClimateControl{
|
||||
CabinTemperature: 70,
|
||||
RearDefrost: false,
|
||||
DriverSeatHeat: 0,
|
||||
PassengerSeatHeat: 0,
|
||||
SteeringWheelHeat: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileProfiles",
|
||||
Object: common.Message{
|
||||
Handler: "profiles",
|
||||
Data: []common.JSONMobileProfile{
|
||||
{
|
||||
VIN: "1F15K3R45N1234567",
|
||||
DriverRole: "OWNER",
|
||||
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),
|
||||
}},
|
||||
},
|
||||
{
|
||||
VIN: "1F15K3R45N3456789",
|
||||
DriverRole: "DRIVER",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileSettingsUpdate",
|
||||
Object: common.Message{
|
||||
Handler: "settings_update",
|
||||
Data: common.MobileSettingsUpdate{
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Settings: []common.CarSetting{{
|
||||
Name: "TESTSETTING",
|
||||
Value: "TESTVALUE",
|
||||
Type: "string",
|
||||
DBModelBase: dbbasemodel.DBModelBase{
|
||||
UpdatedAt: &now,
|
||||
},
|
||||
}},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileStoreInventory",
|
||||
Object: common.Message{
|
||||
Handler: "store_inventory",
|
||||
Data: []common.SubscriptionType{{
|
||||
ID: uuid.New(),
|
||||
Name: "TESTSUB",
|
||||
Destination: "ICC",
|
||||
Price: 100,
|
||||
Currency: "USD",
|
||||
Description: "this is a test",
|
||||
DurationValue: 5,
|
||||
DurationUnit: "Hours",
|
||||
}},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileSubscriptionsUpdate",
|
||||
Object: common.Message{
|
||||
Handler: "subscriptions_update",
|
||||
Data: common.MobileSubscriptionUpdate{
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Subscriptions: []common.Subscription{{
|
||||
Name: "test",
|
||||
Destination: "ICC",
|
||||
Expires: time.Date(2021, 10, 30, 8, 35, 0, 0, time.UTC),
|
||||
}},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileStorePurchaseError",
|
||||
Object: common.Message{
|
||||
Handler: "store_purchase_error",
|
||||
Data: common.JSONError{
|
||||
Error: "test error",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileStoreInventoryError",
|
||||
Object: common.Message{
|
||||
Handler: "store_inventory_error",
|
||||
Data: common.JSONError{
|
||||
Error: "test error",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestUpdates",
|
||||
Object: common.Message{
|
||||
Handler: "updates",
|
||||
Data: []common.ApprovalUpdate{
|
||||
{
|
||||
ID: 1000,
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Name: "Update name",
|
||||
Version: "Update version",
|
||||
Description: "Update description",
|
||||
ReleaseNotes: "http://releasenotes.com",
|
||||
},
|
||||
{
|
||||
ID: 1001,
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Name: "Update name",
|
||||
Version: "Update version",
|
||||
Description: "Update description",
|
||||
ReleaseNotes: "http://releasenotes.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestPOIs",
|
||||
Object: common.Message{
|
||||
Handler: "user_pois",
|
||||
Data: []common.PointOfInterest{
|
||||
{
|
||||
Name: "TestWorkPOI",
|
||||
Location: common.POILocation{
|
||||
Latitude: 1.11,
|
||||
Longitude: 2.22,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestHomePOI",
|
||||
Location: common.POILocation{
|
||||
Latitude: 8.88,
|
||||
Longitude: 9.99,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileError",
|
||||
Object: common.Message{
|
||||
Handler: "error",
|
||||
Data: common.MessageString{
|
||||
Message: "disconnected by duplicate ID",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestMobileManualIssue",
|
||||
Object: common.Message{
|
||||
Handler: "manual_issue",
|
||||
Data: common.AddIssueRequest{
|
||||
Issue: common.Issue{
|
||||
VIN: "1F15K3R45N1234567",
|
||||
Title: "HMI not working",
|
||||
Description: "Black screen on HMI",
|
||||
Timestamp: time.Now(),
|
||||
},
|
||||
Images: [][]byte{
|
||||
{72, 101, 108, 108, 111},
|
||||
{72, 101, 108, 108, 49},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
testhelper.NewSchemaTestHelper(t, schema).
|
||||
RunSchemaTests(tests)
|
||||
}
|
||||
Reference in New Issue
Block a user