@@ -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