From 0cf8169801abecca7b00c5df8be2cbe14f506aa2 Mon Sep 17 00:00:00 2001 From: Arun Chander Date: Tue, 3 Dec 2024 14:35:52 -0800 Subject: [PATCH] Add condition to IdeFact --- .../IdeFactAttribute.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/IdeFactAttribute.cs b/src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/IdeFactAttribute.cs index ab08e17..364ff01 100644 --- a/src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/IdeFactAttribute.cs +++ b/src/Microsoft.VisualStudio.Extensibility.Testing.Xunit.Shared/IdeFactAttribute.cs @@ -19,6 +19,27 @@ public IdeFactAttribute() EnvironmentVariables = new string[0]; } + public IdeFactAttribute(Type conditionType) + { + if (!typeof(ITestCondition).IsAssignableFrom(conditionType)) + { + throw new ArgumentException($"The condition type '{conditionType.FullName}' must implement ITestCondition.", nameof(conditionType)); + } + + var condition = (ITestCondition)Activator.CreateInstance(conditionType)!; + + if (!condition.ShouldRun) + { + Skip = condition.SkipReason ?? "Test condition not met."; + } + + MinVersion = VisualStudioVersion.Unspecified; + MaxVersion = VisualStudioVersion.Unspecified; + RootSuffix = null; + MaxAttempts = 0; + EnvironmentVariables = Array.Empty(); + } + public VisualStudioVersion MinVersion { get;