using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; // HistoryAggregateType using ZB.MOM.WW.HistorianGateway.Contracts.Grpc; // RetrievalMode using ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.Mapping; namespace ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.Tests.Mapping; public sealed class AggregateModeMapperTests { [Theory] [InlineData(HistoryAggregateType.Average, RetrievalMode.TimeWeightedAverage)] [InlineData(HistoryAggregateType.Minimum, RetrievalMode.MinimumWithTime)] [InlineData(HistoryAggregateType.Maximum, RetrievalMode.MaximumWithTime)] [InlineData(HistoryAggregateType.Total, RetrievalMode.Integral)] [InlineData(HistoryAggregateType.Count, RetrievalMode.Counter)] public void Maps_each_aggregate(HistoryAggregateType a, RetrievalMode expected) => Assert.Equal(expected, AggregateModeMapper.ToRetrievalMode(a)); [Fact] // matrix guard: a new HistoryAggregateType member must fail here public void Every_aggregate_member_is_mapped() { foreach (var a in Enum.GetValues()) _ = AggregateModeMapper.ToRetrievalMode(a); // must not throw for any defined member } }