using System.Runtime.Versioning; using AVEVA.Historian.Client.Wcf; namespace AVEVA.Historian.Client.Tests; [SupportedOSPlatform("windows")] public sealed class HistorianSspiClientTests { [Fact] public void NativeFlagsRound0_MatchesDocumentedNativeWrapperValue() { Assert.Equal(0x2081C, HistorianSspiClient.NativeFlagsRound0); } [Fact] public void NativeFlagsRoundSubsequent_MatchesDocumentedNativeWrapperValue() { Assert.Equal(0x81C, HistorianSspiClient.NativeFlagsRoundSubsequent); } [Fact] public void Round0FlagsIncludeIdentify_LaterRoundsDoNot() { Assert.Equal(HistorianSspiClient.IscReqIdentify, HistorianSspiClient.NativeFlagsRound0 & HistorianSspiClient.IscReqIdentify); Assert.Equal(0, HistorianSspiClient.NativeFlagsRoundSubsequent & HistorianSspiClient.IscReqIdentify); } [Fact] public void AllRoundsRequestReplayAndSequenceDetection() { const int both = HistorianSspiClient.IscReqReplayDetect | HistorianSspiClient.IscReqSequenceDetect; Assert.Equal(both, HistorianSspiClient.NativeFlagsRound0 & both); Assert.Equal(both, HistorianSspiClient.NativeFlagsRoundSubsequent & both); } [Fact] public void SelectRequestFlags_DispatchesByRoundIndex() { Assert.Equal(HistorianSspiClient.NativeFlagsRound0, HistorianSspiClient.SelectRequestFlags(0)); Assert.Equal(HistorianSspiClient.NativeFlagsRoundSubsequent, HistorianSspiClient.SelectRequestFlags(1)); Assert.Equal(HistorianSspiClient.NativeFlagsRoundSubsequent, HistorianSspiClient.SelectRequestFlags(7)); } }