Skip to content

Commit b90c269

Browse files
committed
Add failing test to internal/measurement
1 parent 1edb43f commit b90c269

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

usecases/internal/measurement_test.go

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,82 @@ func (s *InternalSuite) Test_MeasurementPhaseSpecificDataForFilter() {
196196
assert.NotNil(s.T(), err)
197197
assert.Nil(s.T(), data)
198198
}
199+
200+
func (s *InternalSuite) Test_MeasurementSinglePhaseSpecificDataForFilter() {
201+
measurementType := model.MeasurementTypeTypePower
202+
commodityType := model.CommodityTypeTypeElectricity
203+
scopeType := model.ScopeTypeTypeACPower
204+
energyDirection := model.EnergyDirectionTypeConsume
205+
206+
filter := model.MeasurementDescriptionDataType{
207+
MeasurementType: &measurementType,
208+
CommodityType: &commodityType,
209+
ScopeType: &scopeType,
210+
}
211+
212+
// set up ElectricalConnection
213+
elDescData := &model.ElectricalConnectionDescriptionListDataType{
214+
ElectricalConnectionDescriptionData: []model.ElectricalConnectionDescriptionDataType{
215+
{
216+
ElectricalConnectionId: util.Ptr(model.ElectricalConnectionIdType(0)),
217+
PositiveEnergyDirection: util.Ptr(model.EnergyDirectionTypeConsume),
218+
},
219+
},
220+
}
221+
222+
elParamData := &model.ElectricalConnectionParameterDescriptionListDataType{
223+
ElectricalConnectionParameterDescriptionData: []model.ElectricalConnectionParameterDescriptionDataType{
224+
{
225+
ElectricalConnectionId: util.Ptr(model.ElectricalConnectionIdType(0)),
226+
MeasurementId: util.Ptr(model.MeasurementIdType(0)),
227+
AcMeasuredPhases: util.Ptr(model.ElectricalConnectionPhaseNameTypeB),
228+
},
229+
},
230+
}
231+
232+
rElFeature := s.remoteDevice.FeatureByEntityTypeAndRole(s.monitoredEntity, model.FeatureTypeTypeElectricalConnection, model.RoleTypeServer)
233+
234+
_, fErr := rElFeature.UpdateData(true, model.FunctionTypeElectricalConnectionDescriptionListData, elDescData, nil, nil)
235+
assert.Nil(s.T(), fErr)
236+
237+
_, fErr = rElFeature.UpdateData(true, model.FunctionTypeElectricalConnectionParameterDescriptionListData, elParamData, nil, nil)
238+
assert.Nil(s.T(), fErr)
239+
240+
descData := &model.MeasurementDescriptionListDataType{
241+
MeasurementDescriptionData: []model.MeasurementDescriptionDataType{
242+
{
243+
MeasurementId: util.Ptr(model.MeasurementIdType(0)),
244+
MeasurementType: util.Ptr(model.MeasurementTypeTypePower),
245+
CommodityType: util.Ptr(model.CommodityTypeTypeElectricity),
246+
ScopeType: util.Ptr(model.ScopeTypeTypeACPower),
247+
},
248+
},
249+
}
250+
251+
rFeature := s.remoteDevice.FeatureByEntityTypeAndRole(s.monitoredEntity, model.FeatureTypeTypeMeasurement, model.RoleTypeServer)
252+
_, fErr = rFeature.UpdateData(true, model.FunctionTypeMeasurementDescriptionListData, descData, nil, nil)
253+
assert.Nil(s.T(), fErr)
254+
255+
measData := &model.MeasurementListDataType{
256+
MeasurementData: []model.MeasurementDataType{
257+
{
258+
MeasurementId: util.Ptr(model.MeasurementIdType(0)),
259+
Value: model.NewScaledNumberType(10),
260+
},
261+
},
262+
}
263+
264+
_, fErr = rFeature.UpdateData(true, model.FunctionTypeMeasurementListData, measData, nil, nil)
265+
assert.Nil(s.T(), fErr)
266+
267+
data, err := MeasurementPhaseSpecificDataForFilter(
268+
s.localEntity,
269+
s.monitoredEntity,
270+
filter,
271+
energyDirection,
272+
ucapi.PhaseNameMapping,
273+
)
274+
assert.Nil(s.T(), err)
275+
assert.Equal(s.T(), []float64{0, 10, 0}, data)
276+
277+
}

0 commit comments

Comments
 (0)