package controllers_test import ( "github.com/fiskerinc/cloud-services/services/attendant/controllers" "encoding/json" "fmt" "testing" ) func TestParsing(t *testing.T) { ecc := []byte(`{"ecu":"ECC","dtc":1719200,"status":9,"snapshot":"AQTv9ucIARIKNO/3AADv+AAAAADv+TLI"}`) icc := []byte(`{"ecu":"ICC","dtc":14302599,"status":9,"snapshot":"AQUFAAHv+AAAAADv+S2W7/cAAO/2B+cIChAB"}`) gw := []byte(`{"ecu":"GW","dtc":10718486,"status":8,"snapshot":"AQTv+QLA7/cAAO/2CAcHFAMs7/gAAAAA"}`) mcu := []byte(`{"ecu":"MCU","dtc":14123795,"status":47,"snapshot":"AQTv9ggHCRcBD+/3AADv+AAAAADv+TLI"}`) check := func(ecu []byte) { var entry controllers.DTCEntry err := json.Unmarshal(ecu, &entry) if err != nil { t.Error(err) } entry.ParseSnapshot() if entry.Mileage != 0 { t.Errorf("Incorrect Mileage %d", entry.Mileage) } fmt.Println(entry.Timestamp.Unix()) switch entry.ECU { case "ECC": if entry.Timestamp.Unix() != 8730871852 { t.Errorf("Incorrect Timestamp %d", entry.Timestamp.Unix()) } if entry.Voltage != 13 { t.Errorf("Incorrect Voltage %d", entry.Voltage) } case "ICC": if entry.Timestamp.Unix() != 1670580961 { t.Errorf("Incorrect Timestamp %d", entry.Timestamp.Unix()) } if entry.Voltage != 11 { t.Errorf("Incorrect Voltage %d", entry.Voltage) } case "GW": if entry.Timestamp.Unix() != 1691525024 { t.Errorf("Incorrect Timestamp %d", entry.Timestamp.Unix()) } case "MCU": if entry.Timestamp.Unix() != 1691708475 { t.Errorf("Incorrect Timestamp %d", entry.Timestamp.Unix()) } } } check(ecc) check(icc) check(gw) check(mcu) }