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  }