79 lines
2.6 KiB
Go
79 lines
2.6 KiB
Go
package handlers_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/fiskerinc/cloud-services/services/depot/handlers"
|
|
"github.com/fiskerinc/cloud-services/services/depot/services"
|
|
|
|
"github.com/fiskerinc/cloud-services/pkg/common"
|
|
"github.com/fiskerinc/cloud-services/pkg/db/queries/mocks"
|
|
"github.com/fiskerinc/cloud-services/pkg/grpc/sms"
|
|
"github.com/fiskerinc/cloud-services/pkg/mongo"
|
|
"github.com/fiskerinc/cloud-services/pkg/redis"
|
|
"github.com/fiskerinc/cloud-services/pkg/redis/tester"
|
|
"github.com/fiskerinc/cloud-services/pkg/testhelper"
|
|
"github.com/fiskerinc/cloud-services/pkg/userconsent"
|
|
)
|
|
|
|
func TestTrexInit(t *testing.T) {
|
|
rMock := tester.MockRedis{}
|
|
rMock.Reset()
|
|
|
|
mockUserConsent := userconsent.UserConsentServiceMock{}
|
|
userconsent.SetUserConsentService(&mockUserConsent)
|
|
|
|
mockCert := CertServiceMock{}
|
|
services.SetCertService(&mockCert)
|
|
|
|
services.SetRedisClientPool(tester.NewMockClientPool(&rMock))
|
|
id := "FISKER123"
|
|
|
|
setupDBMock()
|
|
services.SetMongoClient(mongo.NewMockClient())
|
|
|
|
mockCertificates := mocks.MockCertificates{}
|
|
mockCertificates.MockCertificate = &common.Certificate{
|
|
PublicKey: "test",
|
|
SerialNumber: "",
|
|
Type: common.CertTBOX,
|
|
}
|
|
services.GetDB().SetCertificates(&mockCertificates)
|
|
|
|
mocksms := sms.NewSMSMockSuccess()
|
|
services.SetSmsClient(&mocksms)
|
|
|
|
err := handlers.TRexInit(
|
|
id,
|
|
map[string]string{"version": "1.2.3", "iccid": "123456789123456789123456789", "ip": "172.20.0.17:49850"})
|
|
if err != nil {
|
|
t.Errorf(testhelper.TestErrorTemplate, "TestTRexInit", nil, err)
|
|
}
|
|
|
|
rez := rMock.SetValues[redis.CarStateHashKey(id)]
|
|
if rez.Value.(string) != `{"ip":"172.20.0.17","trex_version":"1.2.3"}` {
|
|
t.Errorf(testhelper.TestErrorTemplate, "TestTRexInit_wrongVersion", `{"ip":"172.20.0.17","trex_version":"1.2.3"}`, rez.Value)
|
|
}
|
|
|
|
rez = rMock.SetValues[redis.CarConfigKey(id)]
|
|
if rez.Value.(string) != `{"canbus":{"enabled":false,"data_logger_enabled":false,"dtc_enabled":false},"log_level":"trace","log":{"matches":[{"channel":"cmd","level":"trace"}]}}` {
|
|
t.Errorf(testhelper.TestErrorTemplate, "TestTRexInit_wrongVersion", `{"canbus":{"enabled":false,"data_logger_enabled":false,"dtc_enabled":false},"log_level":"trace"}`, rez.Value)
|
|
}
|
|
}
|
|
|
|
type CertServiceMock struct{}
|
|
|
|
func (csm *CertServiceMock) CheckCertificateNeedsRenewal(vin string, certType string) (bool, error) {
|
|
return certType == common.CertTBOX, nil
|
|
}
|
|
|
|
func (csm *CertServiceMock) RenewCertificate(vin string, certType string) (*common.Certificate, error) {
|
|
cert := common.Certificate{
|
|
PublicKey: "test",
|
|
SerialNumber: "",
|
|
Type: common.CertTBOX,
|
|
}
|
|
|
|
return &cert, nil
|
|
}
|