140 lines
3.4 KiB
Go
140 lines
3.4 KiB
Go
package digitaltwin_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/fiskerinc/cloud-services/pkg/common"
|
|
"github.com/fiskerinc/cloud-services/pkg/duration"
|
|
)
|
|
|
|
func clone(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
origJSON, err := json.Marshal(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
clone := common.JSONDigitalTwin{}
|
|
if err = json.Unmarshal(origJSON, &clone); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &clone, nil
|
|
}
|
|
|
|
func cloneAndChangeOnline(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.Online = !cloned.Online
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeHMIOnline(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.OnlineHMI = !cloned.OnlineHMI
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeVehicleSpeed(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.VehicleSpeed.Speed = cloned.VehicleSpeed.Speed + 10.0
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeGear(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.Gear.InPark = !cloned.Gear.InPark
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeBattery(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
*cloned.Battery.Percent = *cloned.Battery.Percent - 10.0
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeDoor(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.Doors.LeftFront = !cloned.Doors.LeftFront
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeLocation(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.Location.Altitude = cloned.Location.Altitude + 100.0
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeLocks(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.Locks.Driver = !cloned.Locks.Driver
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeWindows(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.Windows.LeftFront = cloned.Windows.LeftFront + 1
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeClimateControl(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.ClimateControl.AmbientTemperature = cloned.ClimateControl.AmbientTemperature + 1
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeTrexVersion(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.TRexVersion = cloned.TRexVersion + "new_version"
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndChangeIP(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cloned.IP = "172.0.0.99"
|
|
return cloned, nil
|
|
}
|
|
|
|
func cloneAndUpdateAt(orig *common.JSONDigitalTwin) (*common.JSONDigitalTwin, error) {
|
|
cloned, err := clone(orig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
*cloned.UpdatedAt = cloned.UpdatedAt.Add(-1 * duration.Minute)
|
|
return cloned, nil
|
|
}
|