using System.Runtime.Versioning; using AVEVA.Historian.Client.Models; using AVEVA.Historian.Client.Wcf; namespace AVEVA.Historian.Client.Tests; [SupportedOSPlatform("windows")] public sealed class HistorianRetrievalModeMappingTests { // Probed 2026-05-04 via instrument-wcf-writemessage against every // ArchestrA.HistorianRetrievalMode value — see HistorianWcfReadOrchestrator // MapRetrievalModeToQueryType doc comment for capture details. [Theory] [InlineData(RetrievalMode.Cyclic, 0u)] [InlineData(RetrievalMode.Delta, 1u)] [InlineData(RetrievalMode.Full, 2u)] [InlineData(RetrievalMode.Interpolated, 3u)] [InlineData(RetrievalMode.BestFit, 4u)] [InlineData(RetrievalMode.TimeWeightedAverage, 5u)] [InlineData(RetrievalMode.MinimumWithTime, 6u)] [InlineData(RetrievalMode.MaximumWithTime, 7u)] [InlineData(RetrievalMode.Integral, 8u)] [InlineData(RetrievalMode.Slope, 9u)] [InlineData(RetrievalMode.Counter, 10u)] [InlineData(RetrievalMode.ValueState, 11u)] [InlineData(RetrievalMode.RoundTrip, 12u)] [InlineData(RetrievalMode.StartBound, 13u)] [InlineData(RetrievalMode.EndBound, 14u)] public void MapRetrievalModeToQueryType_MatchesNativeEnumOrdinal(RetrievalMode mode, uint expectedQueryType) { Assert.Equal(expectedQueryType, HistorianWcfReadOrchestrator.MapRetrievalModeToQueryType(mode)); } [Fact] public void MapRetrievalModeToQueryType_UndefinedValue_Throws() { Assert.Throws( () => HistorianWcfReadOrchestrator.MapRetrievalModeToQueryType((RetrievalMode)999)); } }