Skip to content

Commit daa9991

Browse files
committed
Merge branch 'release/v0.1.5'
2 parents 0d1fa78 + 767f6a7 commit daa9991

16 files changed

+1406
-64
lines changed

features/deviceclassification_test.go

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package features
2+
3+
import (
4+
"testing"
5+
6+
"github.com/enbility/eebus-go/spine"
7+
"github.com/enbility/eebus-go/spine/model"
8+
"github.com/enbility/eebus-go/util"
9+
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/suite"
11+
)
12+
13+
func TestDeviceClassificationSuite(t *testing.T) {
14+
suite.Run(t, new(DeviceClassificationSuite))
15+
}
16+
17+
type DeviceClassificationSuite struct {
18+
suite.Suite
19+
20+
localDevice *spine.DeviceLocalImpl
21+
remoteEntity *spine.EntityRemoteImpl
22+
23+
deviceClassification *DeviceClassification
24+
sentMessage []byte
25+
}
26+
27+
var _ spine.SpineDataConnection = (*DeviceClassificationSuite)(nil)
28+
29+
func (s *DeviceClassificationSuite) WriteSpineMessage(message []byte) {
30+
s.sentMessage = message
31+
}
32+
33+
func (s *DeviceClassificationSuite) BeforeTest(suiteName, testName string) {
34+
s.localDevice, s.remoteEntity = setupFeatures(
35+
s.T(),
36+
s,
37+
[]featureFunctions{
38+
{
39+
featureType: model.FeatureTypeTypeDeviceClassification,
40+
functions: []model.FunctionType{
41+
model.FunctionTypeDeviceClassificationManufacturerData,
42+
},
43+
},
44+
},
45+
)
46+
47+
var err error
48+
s.deviceClassification, err = NewDeviceClassification(model.RoleTypeServer, model.RoleTypeClient, s.localDevice, s.remoteEntity)
49+
assert.Nil(s.T(), err)
50+
assert.NotNil(s.T(), s.deviceClassification)
51+
}
52+
53+
func (s *DeviceClassificationSuite) Test_RequestManufacturerDetailsForEntity() {
54+
counter, err := s.deviceClassification.RequestManufacturerDetailsForEntity()
55+
assert.Nil(s.T(), err)
56+
assert.NotNil(s.T(), counter)
57+
}
58+
59+
func (s *DeviceClassificationSuite) Test_GetManufacturerDetails() {
60+
result, err := s.deviceClassification.GetManufacturerDetails()
61+
assert.NotNil(s.T(), err)
62+
assert.Nil(s.T(), result)
63+
64+
rF := s.remoteEntity.Feature(util.Ptr(model.AddressFeatureType(1)))
65+
fData := &model.DeviceClassificationManufacturerDataType{
66+
DeviceName: util.Ptr(model.DeviceClassificationStringType("brand")),
67+
DeviceCode: util.Ptr(model.DeviceClassificationStringType("brand")),
68+
SerialNumber: util.Ptr(model.DeviceClassificationStringType("brand")),
69+
SoftwareRevision: util.Ptr(model.DeviceClassificationStringType("brand")),
70+
HardwareRevision: util.Ptr(model.DeviceClassificationStringType("brand")),
71+
VendorName: util.Ptr(model.DeviceClassificationStringType("brand")),
72+
VendorCode: util.Ptr(model.DeviceClassificationStringType("brand")),
73+
BrandName: util.Ptr(model.DeviceClassificationStringType("brand")),
74+
PowerSource: util.Ptr(model.PowerSourceType("brand")),
75+
ManufacturerNodeIdentification: util.Ptr(model.DeviceClassificationStringType("brand")),
76+
ManufacturerLabel: util.Ptr(model.LabelType("label")),
77+
ManufacturerDescription: util.Ptr(model.DescriptionType("description")),
78+
}
79+
rF.UpdateData(model.FunctionTypeDeviceClassificationManufacturerData, fData, nil, nil)
80+
81+
result, err = s.deviceClassification.GetManufacturerDetails()
82+
assert.Nil(s.T(), err)
83+
assert.NotNil(s.T(), result)
84+
}

features/deviceconfiguration.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func (d *DeviceConfiguration) GetDescriptionKeyNameSupport(keyName model.DeviceC
8282
if item.KeyId == nil || item.KeyName == nil {
8383
continue
8484
}
85-
if *item.KeyName == string(keyName) {
85+
if *item.KeyName == keyName {
8686
return true, nil
8787
}
8888
}
@@ -125,7 +125,7 @@ func (d *DeviceConfiguration) GetEVCommunicationStandard() (*string, error) {
125125
continue
126126
}
127127

128-
if *desc.KeyName == string(model.DeviceConfigurationKeyNameTypeCommunicationsStandard) {
128+
if *desc.KeyName == model.DeviceConfigurationKeyNameTypeCommunicationsStandard {
129129
return (*string)(item.Value.String), nil
130130
}
131131
}
@@ -178,7 +178,7 @@ func (d *DeviceConfiguration) GetValues() ([]DeviceConfigurationType, error) {
178178
}
179179

180180
result := DeviceConfigurationType{
181-
Key: *desc.KeyName,
181+
Key: string(*desc.KeyName),
182182
}
183183
if desc.ValueType == nil {
184184
continue
@@ -217,13 +217,13 @@ func (d *DeviceConfiguration) GetValues() ([]DeviceConfigurationType, error) {
217217
result.ValueTime = value
218218
}
219219
}
220-
case model.DeviceConfigurationKeyValueTypeTypeScalednumber:
220+
case model.DeviceConfigurationKeyValueTypeTypeScaledNumber:
221221
if item.Value.ScaledNumber != nil {
222222
result.ValueFloat = item.Value.ScaledNumber.GetValue()
223223
}
224224
}
225225
if desc.Unit != nil {
226-
result.Unit = *desc.Unit
226+
result.Unit = string(*desc.Unit)
227227
}
228228

229229
resultSet = append(resultSet, result)

features/deviceconfiguration_test.go

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
package features
2+
3+
import (
4+
"testing"
5+
6+
"github.com/enbility/eebus-go/spine"
7+
"github.com/enbility/eebus-go/spine/model"
8+
"github.com/enbility/eebus-go/util"
9+
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/suite"
11+
)
12+
13+
func TestDeviceConfigurationSuite(t *testing.T) {
14+
suite.Run(t, new(DeviceConfigurationSuite))
15+
}
16+
17+
type DeviceConfigurationSuite struct {
18+
suite.Suite
19+
20+
localDevice *spine.DeviceLocalImpl
21+
remoteEntity *spine.EntityRemoteImpl
22+
23+
deviceConfiguration *DeviceConfiguration
24+
sentMessage []byte
25+
}
26+
27+
var _ spine.SpineDataConnection = (*DeviceConfigurationSuite)(nil)
28+
29+
func (s *DeviceConfigurationSuite) WriteSpineMessage(message []byte) {
30+
s.sentMessage = message
31+
}
32+
33+
func (s *DeviceConfigurationSuite) BeforeTest(suiteName, testName string) {
34+
s.localDevice, s.remoteEntity = setupFeatures(
35+
s.T(),
36+
s,
37+
[]featureFunctions{
38+
{
39+
featureType: model.FeatureTypeTypeDeviceConfiguration,
40+
functions: []model.FunctionType{
41+
model.FunctionTypeDeviceConfigurationKeyValueDescriptionListData,
42+
model.FunctionTypeDeviceConfigurationKeyValueListData,
43+
},
44+
},
45+
},
46+
)
47+
48+
var err error
49+
s.deviceConfiguration, err = NewDeviceConfiguration(model.RoleTypeServer, model.RoleTypeClient, s.localDevice, s.remoteEntity)
50+
assert.Nil(s.T(), err)
51+
assert.NotNil(s.T(), s.deviceConfiguration)
52+
}
53+
54+
func (s *DeviceConfigurationSuite) Test_Request() {
55+
err := s.deviceConfiguration.Request()
56+
assert.Nil(s.T(), err)
57+
}
58+
59+
func (s *DeviceConfigurationSuite) Test_RequestKeyValueList() {
60+
counter, err := s.deviceConfiguration.RequestKeyValueList()
61+
assert.Nil(s.T(), err)
62+
assert.NotNil(s.T(), counter)
63+
}
64+
65+
func (s *DeviceConfigurationSuite) Test_GetDescriptionKeyNameSupport() {
66+
exists, err := s.deviceConfiguration.GetDescriptionKeyNameSupport(model.DeviceConfigurationKeyNameTypeCommunicationsStandard)
67+
assert.NotNil(s.T(), err)
68+
assert.Equal(s.T(), false, exists)
69+
70+
s.addDescription()
71+
72+
exists, err = s.deviceConfiguration.GetDescriptionKeyNameSupport(model.DeviceConfigurationKeyNameTypeCommunicationsStandard)
73+
assert.Nil(s.T(), err)
74+
assert.Equal(s.T(), true, exists)
75+
}
76+
77+
func (s *DeviceConfigurationSuite) Test_GetEVCommunicationStandard() {
78+
value, err := s.deviceConfiguration.GetEVCommunicationStandard()
79+
assert.NotNil(s.T(), err)
80+
assert.Nil(s.T(), value)
81+
82+
s.addDescription()
83+
84+
value, err = s.deviceConfiguration.GetEVCommunicationStandard()
85+
assert.NotNil(s.T(), err)
86+
assert.Nil(s.T(), value)
87+
88+
s.addData()
89+
90+
value, err = s.deviceConfiguration.GetEVCommunicationStandard()
91+
assert.Nil(s.T(), err)
92+
assert.NotNil(s.T(), value)
93+
}
94+
95+
func (s *DeviceConfigurationSuite) Test_GetValues() {
96+
data, err := s.deviceConfiguration.GetValues()
97+
assert.NotNil(s.T(), err)
98+
assert.Nil(s.T(), data)
99+
100+
s.addDescription()
101+
102+
data, err = s.deviceConfiguration.GetValues()
103+
assert.NotNil(s.T(), err)
104+
assert.Nil(s.T(), data)
105+
106+
s.addData()
107+
108+
data, err = s.deviceConfiguration.GetValues()
109+
assert.Nil(s.T(), err)
110+
assert.NotNil(s.T(), data)
111+
112+
}
113+
114+
// helper
115+
116+
func (s *DeviceConfigurationSuite) addDescription() {
117+
rF := s.remoteEntity.Feature(util.Ptr(model.AddressFeatureType(1)))
118+
fData := &model.DeviceConfigurationKeyValueDescriptionListDataType{
119+
DeviceConfigurationKeyValueDescriptionData: []model.DeviceConfigurationKeyValueDescriptionDataType{
120+
{
121+
KeyId: util.Ptr(model.DeviceConfigurationKeyIdType(0)),
122+
KeyName: util.Ptr(model.DeviceConfigurationKeyNameTypeCommunicationsStandard),
123+
ValueType: util.Ptr(model.DeviceConfigurationKeyValueTypeTypeString),
124+
},
125+
{
126+
KeyId: util.Ptr(model.DeviceConfigurationKeyIdType(1)),
127+
KeyName: util.Ptr(model.DeviceConfigurationKeyNameTypeAsymmetricChargingSupported),
128+
ValueType: util.Ptr(model.DeviceConfigurationKeyValueTypeTypeBoolean),
129+
},
130+
{
131+
KeyId: util.Ptr(model.DeviceConfigurationKeyIdType(2)),
132+
KeyName: util.Ptr(model.DeviceConfigurationKeyNameTypePvCurtailmentLimitFactor),
133+
ValueType: util.Ptr(model.DeviceConfigurationKeyValueTypeTypeScaledNumber),
134+
},
135+
},
136+
}
137+
rF.UpdateData(model.FunctionTypeDeviceConfigurationKeyValueDescriptionListData, fData, nil, nil)
138+
}
139+
140+
func (s *DeviceConfigurationSuite) addData() {
141+
rF := s.remoteEntity.Feature(util.Ptr(model.AddressFeatureType(1)))
142+
fData := &model.DeviceConfigurationKeyValueListDataType{
143+
DeviceConfigurationKeyValueData: []model.DeviceConfigurationKeyValueDataType{
144+
{
145+
KeyId: util.Ptr(model.DeviceConfigurationKeyIdType(0)),
146+
Value: &model.DeviceConfigurationKeyValueValueType{
147+
String: util.Ptr(model.DeviceConfigurationKeyValueStringType("test")),
148+
},
149+
},
150+
{
151+
KeyId: util.Ptr(model.DeviceConfigurationKeyIdType(1)),
152+
Value: &model.DeviceConfigurationKeyValueValueType{
153+
Boolean: util.Ptr(true),
154+
},
155+
},
156+
{
157+
KeyId: util.Ptr(model.DeviceConfigurationKeyIdType(2)),
158+
Value: &model.DeviceConfigurationKeyValueValueType{
159+
ScaledNumber: model.NewScaledNumberType(50),
160+
},
161+
},
162+
},
163+
}
164+
rF.UpdateData(model.FunctionTypeDeviceConfigurationKeyValueListData, fData, nil, nil)
165+
}

features/devicediagnosis.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (d *DeviceDiagnosis) GetState() (*DeviceDiagnosisType, error) {
6767
return details, nil
6868
}
6969

70-
func (d *DeviceDiagnosis) SendDeviceDiagnosisState(operatingState *model.DeviceDiagnosisStateDataType) {
70+
func (d *DeviceDiagnosis) SendState(operatingState *model.DeviceDiagnosisStateDataType) {
7171
d.featureLocal.SetData(model.FunctionTypeDeviceDiagnosisStateData, operatingState)
7272

7373
_, _ = d.featureLocal.NotifyData(model.FunctionTypeDeviceDiagnosisStateData, nil, nil, false, nil, d.featureRemote)

0 commit comments

Comments
 (0)