Skip to content
This repository was archived by the owner on Jun 29, 2024. It is now read-only.

Commit b9a0130

Browse files
committed
Add tests
1 parent 74909dd commit b9a0130

File tree

3 files changed

+167
-1
lines changed

3 files changed

+167
-1
lines changed

util/deviceconfiguration.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func DeviceConfigurationCheckDataPayloadForKeyName(localServer bool, service eeb
2222
desc = GetLocalDeviceConfigurationDescriptionForKeyName(service, keyName)
2323
} else {
2424
deviceconfigF, err := DeviceConfiguration(service, payload.Entity)
25-
if err != nil || payload.Data == nil {
25+
if err != nil {
2626
return false
2727
}
2828

util/deviceconfiguration_test.go

+57
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,63 @@ import (
77
"github.com/stretchr/testify/assert"
88
)
99

10+
func (s *UtilSuite) Test_DeviceConfigurationCheckPayloadForKeyNameLocal() {
11+
keyName := model.DeviceConfigurationKeyNameTypeFailsafeConsumptionActivePowerLimit
12+
13+
payload := spineapi.EventPayload{
14+
Entity: s.mockRemoteEntity,
15+
}
16+
17+
exists := DeviceConfigurationCheckDataPayloadForKeyName(true, s.service, payload, keyName)
18+
assert.False(s.T(), exists)
19+
20+
payload.Entity = s.monitoredEntity
21+
22+
exists = DeviceConfigurationCheckDataPayloadForKeyName(true, s.service, payload, keyName)
23+
assert.False(s.T(), exists)
24+
25+
descData := &model.DeviceConfigurationKeyValueDescriptionListDataType{
26+
DeviceConfigurationKeyValueDescriptionData: []model.DeviceConfigurationKeyValueDescriptionDataType{
27+
{
28+
KeyId: eebusutil.Ptr(model.DeviceConfigurationKeyIdType(0)),
29+
KeyName: eebusutil.Ptr(keyName),
30+
},
31+
},
32+
}
33+
34+
entity := s.service.LocalDevice().EntityForType(model.EntityTypeTypeCEM)
35+
feature := entity.FeatureOfTypeAndRole(model.FeatureTypeTypeDeviceConfiguration, model.RoleTypeServer)
36+
feature.SetData(model.FunctionTypeDeviceConfigurationKeyValueDescriptionListData, descData)
37+
38+
exists = DeviceConfigurationCheckDataPayloadForKeyName(true, s.service, payload, keyName)
39+
assert.False(s.T(), exists)
40+
41+
keyData := &model.DeviceConfigurationKeyValueListDataType{
42+
DeviceConfigurationKeyValueData: []model.DeviceConfigurationKeyValueDataType{},
43+
}
44+
45+
payload.Data = keyData
46+
47+
exists = DeviceConfigurationCheckDataPayloadForKeyName(true, s.service, payload, keyName)
48+
assert.False(s.T(), exists)
49+
50+
keyData = &model.DeviceConfigurationKeyValueListDataType{
51+
DeviceConfigurationKeyValueData: []model.DeviceConfigurationKeyValueDataType{
52+
{
53+
KeyId: eebusutil.Ptr(model.DeviceConfigurationKeyIdType(0)),
54+
Value: &model.DeviceConfigurationKeyValueValueType{
55+
String: eebusutil.Ptr(model.DeviceConfigurationKeyValueStringTypeIEC61851),
56+
},
57+
},
58+
},
59+
}
60+
61+
payload.Data = keyData
62+
63+
exists = DeviceConfigurationCheckDataPayloadForKeyName(true, s.service, payload, keyName)
64+
assert.True(s.T(), exists)
65+
}
66+
1067
func (s *UtilSuite) Test_DeviceConfigurationCheckPayloadForKeyName() {
1168
keyName := model.DeviceConfigurationKeyNameTypeFailsafeConsumptionActivePowerLimit
1269

util/loadcontrol_test.go

+109
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,115 @@ import (
1010
"github.com/stretchr/testify/assert"
1111
)
1212

13+
func (s *UtilSuite) Test_LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScopeLocal() {
14+
limitType := model.LoadControlLimitTypeTypeMaxValueLimit
15+
scope := model.ScopeTypeTypeSelfConsumption
16+
category := model.LoadControlCategoryTypeObligation
17+
direction := model.EnergyDirectionType("")
18+
19+
payload := spineapi.EventPayload{
20+
Entity: s.mockRemoteEntity,
21+
}
22+
23+
exists := LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope(true, s.service, payload, limitType, category, direction, scope)
24+
assert.False(s.T(), exists)
25+
26+
payload.Entity = s.monitoredEntity
27+
28+
exists = LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope(true, s.service, payload, limitType, category, direction, scope)
29+
assert.False(s.T(), exists)
30+
31+
descData := &model.LoadControlLimitDescriptionListDataType{
32+
LoadControlLimitDescriptionData: []model.LoadControlLimitDescriptionDataType{
33+
{
34+
LimitId: eebusutil.Ptr(model.LoadControlLimitIdType(0)),
35+
LimitCategory: eebusutil.Ptr(category),
36+
MeasurementId: eebusutil.Ptr(model.MeasurementIdType(0)),
37+
LimitType: eebusutil.Ptr(limitType),
38+
ScopeType: eebusutil.Ptr(scope),
39+
},
40+
{
41+
LimitId: eebusutil.Ptr(model.LoadControlLimitIdType(1)),
42+
LimitCategory: eebusutil.Ptr(category),
43+
MeasurementId: eebusutil.Ptr(model.MeasurementIdType(1)),
44+
LimitType: eebusutil.Ptr(limitType),
45+
ScopeType: eebusutil.Ptr(scope),
46+
},
47+
{
48+
LimitId: eebusutil.Ptr(model.LoadControlLimitIdType(2)),
49+
LimitCategory: eebusutil.Ptr(category),
50+
MeasurementId: eebusutil.Ptr(model.MeasurementIdType(2)),
51+
LimitType: eebusutil.Ptr(limitType),
52+
ScopeType: eebusutil.Ptr(scope),
53+
},
54+
},
55+
}
56+
57+
entity := s.service.LocalDevice().EntityForType(model.EntityTypeTypeCEM)
58+
feature := entity.FeatureOfTypeAndRole(model.FeatureTypeTypeLoadControl, model.RoleTypeServer)
59+
feature.SetData(model.FunctionTypeLoadControlLimitDescriptionListData, descData)
60+
61+
exists = LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope(true, s.service, payload, limitType, category, direction, scope)
62+
assert.False(s.T(), exists)
63+
64+
paramData := &model.ElectricalConnectionParameterDescriptionListDataType{
65+
ElectricalConnectionParameterDescriptionData: []model.ElectricalConnectionParameterDescriptionDataType{
66+
{
67+
ElectricalConnectionId: eebusutil.Ptr(model.ElectricalConnectionIdType(0)),
68+
ParameterId: eebusutil.Ptr(model.ElectricalConnectionParameterIdType(0)),
69+
MeasurementId: eebusutil.Ptr(model.MeasurementIdType(0)),
70+
AcMeasuredPhases: eebusutil.Ptr(model.ElectricalConnectionPhaseNameTypeA),
71+
},
72+
{
73+
ElectricalConnectionId: eebusutil.Ptr(model.ElectricalConnectionIdType(0)),
74+
ParameterId: eebusutil.Ptr(model.ElectricalConnectionParameterIdType(1)),
75+
MeasurementId: eebusutil.Ptr(model.MeasurementIdType(1)),
76+
AcMeasuredPhases: eebusutil.Ptr(model.ElectricalConnectionPhaseNameTypeB),
77+
},
78+
{
79+
ElectricalConnectionId: eebusutil.Ptr(model.ElectricalConnectionIdType(0)),
80+
ParameterId: eebusutil.Ptr(model.ElectricalConnectionParameterIdType(2)),
81+
MeasurementId: eebusutil.Ptr(model.MeasurementIdType(2)),
82+
AcMeasuredPhases: eebusutil.Ptr(model.ElectricalConnectionPhaseNameTypeC),
83+
},
84+
},
85+
}
86+
87+
elFeature := entity.FeatureOfTypeAndRole(model.FeatureTypeTypeElectricalConnection, model.RoleTypeServer)
88+
elFeature.SetData(model.FunctionTypeElectricalConnectionParameterDescriptionListData, paramData)
89+
90+
exists = LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope(true, s.service, payload, limitType, category, direction, scope)
91+
assert.False(s.T(), exists)
92+
93+
limitData := &model.LoadControlLimitListDataType{
94+
LoadControlLimitData: []model.LoadControlLimitDataType{},
95+
}
96+
97+
payload.Data = limitData
98+
exists = LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope(true, s.service, payload, limitType, category, direction, scope)
99+
assert.False(s.T(), exists)
100+
101+
limitData = &model.LoadControlLimitListDataType{
102+
LoadControlLimitData: []model.LoadControlLimitDataType{
103+
{
104+
LimitId: eebusutil.Ptr(model.LoadControlLimitIdType(0)),
105+
Value: model.NewScaledNumberType(16),
106+
},
107+
{
108+
LimitId: eebusutil.Ptr(model.LoadControlLimitIdType(1)),
109+
Value: model.NewScaledNumberType(16),
110+
},
111+
{
112+
LimitId: eebusutil.Ptr(model.LoadControlLimitIdType(2)),
113+
},
114+
},
115+
}
116+
117+
payload.Data = limitData
118+
exists = LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope(true, s.service, payload, limitType, category, direction, scope)
119+
assert.True(s.T(), exists)
120+
}
121+
13122
func (s *UtilSuite) Test_LoadControlLimitsCheckPayloadDataForTypeCategoryDirectionScope() {
14123
limitType := model.LoadControlLimitTypeTypeMaxValueLimit
15124
scope := model.ScopeTypeTypeSelfConsumption

0 commit comments

Comments
 (0)