github.com/enbility/spine-go@v0.7.0/integration_tests/devicediagnosis_test.go (about) 1 package integrationtests 2 3 import ( 4 "testing" 5 6 "github.com/enbility/spine-go/api" 7 "github.com/enbility/spine-go/model" 8 "github.com/enbility/spine-go/spine" 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/suite" 11 ) 12 13 const ( 14 dd_subscriptionRequestCall_recv_file_path = "./testdata/dd_subscriptionRequestCall_recv.json" 15 dd_subscriptionRequestCall_recv_result_file_path = "./testdata/ec_subscriptionRequestCall_recv_result.json" 16 ) 17 18 func TestDeviceDiagnosisSuite(t *testing.T) { 19 suite.Run(t, new(DeviceDiagnosisSuite)) 20 } 21 22 type DeviceDiagnosisSuite struct { 23 suite.Suite 24 sut api.DeviceLocalInterface 25 26 remoteSki string 27 28 remoteDevice api.DeviceRemoteInterface 29 writeHandler *WriteMessageHandler 30 } 31 32 func (s *DeviceDiagnosisSuite) BeforeTest(suiteName, testName string) { 33 s.sut, s.remoteSki, s.remoteDevice, s.writeHandler = beforeTest(1, model.FeatureTypeTypeDeviceDiagnosis, model.RoleTypeServer) 34 35 // f.AddFunctionType(model.FunctionTypeDeviceDiagnosisHeartbeatData, true, false) 36 37 initialCommunication(s.T(), s.remoteDevice, s.writeHandler) 38 } 39 40 func (s *DeviceDiagnosisSuite) TestHeartbeatSubscription_RecvNotify() { 41 // Act 42 msgCounter, _ := s.remoteDevice.HandleSpineMesssage(loadFileData(s.T(), dd_subscriptionRequestCall_recv_file_path)) 43 waitForAck(s.T(), msgCounter, s.writeHandler) 44 45 // Assert 46 remoteDevice := s.sut.RemoteDeviceForSki(s.remoteSki) 47 assert.NotNil(s.T(), remoteDevice) 48 49 ddFeature := remoteDevice.FeatureByEntityTypeAndRole( 50 remoteDevice.Entity(spine.NewAddressEntityType([]uint{1})), 51 model.FeatureTypeTypeDeviceDiagnosis, 52 model.RoleTypeClient) 53 assert.NotNil(s.T(), ddFeature) 54 }