From b9384a7f2b4a0425c4d2509039500b0b846d2d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Terje=20Sandstr=C3=B8m?= Date: Thu, 27 May 2021 21:58:10 +0200 Subject: [PATCH] Fix misc warnings --- .../AcceptanceTests.cs | 4 +- .../IsolatedWorkspace.RunSettings.cs | 2 +- .../WorkspaceTools/IsolatedWorkspace.cs | 4 +- .../IsolatedWorkspaceManager.cs | 2 +- .../WorkspaceTools/ProcessUtils.cs | 102 +++++++++--------- .../WorkspaceTools/ProcessUtilsTests.cs | 4 +- src/NUnitTestAdapter/CategoryList.cs | 2 +- src/NUnitTestAdapter/Execution.cs | 2 +- .../Metadata/AppDomainMetadataProvider.cs | 2 +- src/NUnitTestAdapter/NUnit3TestExecutor.cs | 2 +- .../NUnitEngine/DiscoveryConverter.cs | 4 +- .../NUnitEngine/NUnitDiscoveryTestClasses.cs | 24 ++--- src/NUnitTestAdapter/NUnitEventListener.cs | 2 +- .../NUnitTestFilterBuilder.cs | 2 +- src/NUnitTestAdapter/NavigationData.cs | 2 +- .../NavigationDataProvider.cs | 4 +- .../TestFilterConverter/TestFilterParser.cs | 34 +++--- src/NUnitTestAdapter/TraitsFeature.cs | 2 +- .../AdapterSettingsTests.cs | 2 +- .../AssemblyRunnerTests.cs | 2 +- src/NUnitTestAdapterTests/ExecutionTests.cs | 2 +- .../Fakes/MessageLoggerStub.cs | 2 +- .../Filtering/FilteringTestUtils.cs | 2 +- .../Filtering/TestDoubleFilterExpression.cs | 6 +- .../NUnitEngineTests/NUnitTestCaseTests.cs | 13 ++- .../NUnitEventListenerOutputTests.cs | 2 - .../TestDiscoveryTests.cs | 4 +- 27 files changed, 112 insertions(+), 123 deletions(-) diff --git a/src/NUnit.TestAdapter.Tests.Acceptance/AcceptanceTests.cs b/src/NUnit.TestAdapter.Tests.Acceptance/AcceptanceTests.cs index 92d55df7..007ca3d6 100644 --- a/src/NUnit.TestAdapter.Tests.Acceptance/AcceptanceTests.cs +++ b/src/NUnit.TestAdapter.Tests.Acceptance/AcceptanceTests.cs @@ -31,7 +31,7 @@ public abstract class AcceptanceTests "netcoreapp3.1" }; - private static readonly Lazy<(IsolatedWorkspaceManager manager, string nupkgVersion, bool keepWorkspaces)> Initialization = new Lazy<(IsolatedWorkspaceManager, string, bool)>(() => + private static readonly Lazy<(IsolatedWorkspaceManager manager, string nupkgVersion, bool keepWorkspaces)> Initialization = new (() => { var directory = TestContext.Parameters["ProjectWorkspaceDirectory"] ?? TryAutoDetectProjectWorkspaceDirectory() @@ -69,7 +69,7 @@ private static void ClearCachedTestNupkgs(string packageCachePath) Utils.DeleteDirectoryRobust(Path.Combine(packageCachePath, NuGetPackageId)); } - private static readonly Dictionary> WorkspacesByTestId = new Dictionary>(); + private static readonly Dictionary> WorkspacesByTestId = new (); protected static IsolatedWorkspace CreateWorkspace() { diff --git a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.RunSettings.cs b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.RunSettings.cs index 41b32741..8521961b 100644 --- a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.RunSettings.cs +++ b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.RunSettings.cs @@ -7,7 +7,7 @@ partial class IsolatedWorkspace { private sealed class RunSettings { - private readonly List arguments = new List(); + private readonly List arguments = new (); public string WorkingDirectory { get; } public string FileName { get; } diff --git a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.cs b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.cs index a5d31d7e..0bd140d8 100644 --- a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.cs +++ b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspace.cs @@ -8,7 +8,7 @@ namespace NUnit.VisualStudio.TestAdapter.Tests.Acceptance.WorkspaceTools [DebuggerDisplay("{Directory,nq}")] public sealed partial class IsolatedWorkspace : IDisposable { - private readonly List projectPaths = new List(); + private readonly List projectPaths = new (); private readonly ToolResolver toolResolver; private readonly DirectoryMutex directoryMutex; @@ -111,6 +111,6 @@ public VSTestResult VSTest(string testAssemblyPath) return VSTestResult.Load(result, tempTrxFile); } - private RunSettings ConfigureRun(string filename) => new RunSettings(Directory, filename); + private RunSettings ConfigureRun(string filename) => new (Directory, filename); } } diff --git a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspaceManager.cs b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspaceManager.cs index f12ea81c..d46fae6a 100644 --- a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspaceManager.cs +++ b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/IsolatedWorkspaceManager.cs @@ -44,7 +44,7 @@ public void Dispose() public IsolatedWorkspace CreateWorkspace(string name) { - return new IsolatedWorkspace( + return new ( Utils.CreateMutexDirectory(workspaceDirectory.DirectoryPath, name), toolResolver); } diff --git a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtils.cs b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtils.cs index 97bf52a9..213b6da4 100644 --- a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtils.cs +++ b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtils.cs @@ -18,7 +18,7 @@ public static ProcessRunResult Run(string workingDirectory, string fileName, IEn var escapedArguments = arguments is null ? null : EscapeProcessArguments(arguments, alwaysQuote: false); - using (var process = new Process + using var process = new Process { StartInfo = { @@ -29,51 +29,49 @@ public static ProcessRunResult Run(string workingDirectory, string fileName, IEn RedirectStandardOutput = true, RedirectStandardError = true } - }) - { - // This is inherited if the test runner was started by the Visual Studio process. - // It breaks MSBuild 15’s targets when it tries to build legacy csprojs and vbprojs. - process.StartInfo.EnvironmentVariables.Remove("VisualStudioVersion"); + }; + // This is inherited if the test runner was started by the Visual Studio process. + // It breaks MSBuild 15’s targets when it tries to build legacy csprojs and vbprojs. + process.StartInfo.EnvironmentVariables.Remove("VisualStudioVersion"); - var stdout = (StringBuilder)null; - var stderr = (StringBuilder)null; + var stdout = (StringBuilder)null; + var stderr = (StringBuilder)null; - process.OutputDataReceived += (sender, e) => - { - if (e.Data is null) return; + process.OutputDataReceived += (sender, e) => + { + if (e.Data is null) return; - if (stdout is null) - stdout = new StringBuilder(); - else - stdout.AppendLine(); + if (stdout is null) + stdout = new StringBuilder(); + else + stdout.AppendLine(); - stdout.Append(e.Data); - }; + stdout.Append(e.Data); + }; - process.ErrorDataReceived += (sender, e) => - { - if (e.Data is null) return; - - if (stderr is null) - stderr = new StringBuilder(); - else - stderr.AppendLine(); - - stderr.Append(e.Data); - }; - - process.Start(); - process.BeginErrorReadLine(); - process.BeginOutputReadLine(); - process.WaitForExit(); - - return new ProcessRunResult( - fileName, - escapedArguments, - process.ExitCode, - stdout?.ToString(), - stderr?.ToString()); - } + process.ErrorDataReceived += (sender, e) => + { + if (e.Data is null) return; + + if (stderr is null) + stderr = new StringBuilder(); + else + stderr.AppendLine(); + + stderr.Append(e.Data); + }; + + process.Start(); + process.BeginErrorReadLine(); + process.BeginOutputReadLine(); + process.WaitForExit(); + + return new ProcessRunResult( + fileName, + escapedArguments, + process.ExitCode, + stdout?.ToString(), + stderr?.ToString()); } private static readonly char[] CharsThatRequireQuoting = { ' ', '"' }; @@ -87,21 +85,19 @@ public static string EscapeProcessArguments(IEnumerable literalValues, b { if (literalValues is null) throw new ArgumentNullException(nameof(literalValues)); - using (var en = literalValues.GetEnumerator()) - { - if (!en.MoveNext()) return string.Empty; + using var en = literalValues.GetEnumerator(); + if (!en.MoveNext()) return string.Empty; - var builder = new StringBuilder(); + var builder = new StringBuilder(); - while (true) - { - EscapeProcessArgument(builder, en.Current, alwaysQuote); - if (!en.MoveNext()) break; - builder.Append(' '); - } - - return builder.ToString(); + while (true) + { + EscapeProcessArgument(builder, en.Current, alwaysQuote); + if (!en.MoveNext()) break; + builder.Append(' '); } + + return builder.ToString(); } private static void EscapeProcessArgument(StringBuilder builder, string literalValue, bool alwaysQuote) diff --git a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtilsTests.cs b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtilsTests.cs index 9f4ed563..5cd6e322 100644 --- a/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtilsTests.cs +++ b/src/NUnit.TestAdapter.Tests.Acceptance/WorkspaceTools/ProcessUtilsTests.cs @@ -19,13 +19,13 @@ public static void EscapeProcessArguments_null_alwaysQuote() [Test] public static void EscapeProcessArguments_empty() { - Assert.That(ProcessUtils.EscapeProcessArguments(new string[] { string.Empty }), Is.EqualTo("\"\"")); + Assert.That(ProcessUtils.EscapeProcessArguments(new[] { string.Empty }), Is.EqualTo("\"\"")); } [Test] public static void EscapeProcessArguments_empty_alwaysQuote() { - Assert.That(ProcessUtils.EscapeProcessArguments(new string[] { string.Empty }, true), Is.EqualTo("\"\"")); + Assert.That(ProcessUtils.EscapeProcessArguments(new[] { string.Empty }, true), Is.EqualTo("\"\"")); } [Test] diff --git a/src/NUnitTestAdapter/CategoryList.cs b/src/NUnitTestAdapter/CategoryList.cs index d86ac4f3..34e7062b 100644 --- a/src/NUnitTestAdapter/CategoryList.cs +++ b/src/NUnitTestAdapter/CategoryList.cs @@ -124,7 +124,7 @@ public void AddRange(IEnumerable categories) /// /// See https://github.com/nunit/nunit/blob/master/src/NUnitFramework/framework/Internal/PropertyNames.cs. /// - private readonly HashSet _internalProperties = new HashSet(StringComparer.OrdinalIgnoreCase) + private readonly HashSet _internalProperties = new (StringComparer.OrdinalIgnoreCase) { "Author", "ApartmentState", "Description", "IgnoreUntilDate", "LevelOfParallelism", "MaxTime", "Order", "ParallelScope", "Repeat", "RequiresThread", "SetCulture", "SetUICulture", "TestOf", "Timeout" }; diff --git a/src/NUnitTestAdapter/Execution.cs b/src/NUnitTestAdapter/Execution.cs index 881ecad2..5044275e 100644 --- a/src/NUnitTestAdapter/Execution.cs +++ b/src/NUnitTestAdapter/Execution.cs @@ -67,7 +67,7 @@ public virtual bool Run(TestFilter filter, DiscoveryConverter discovery, NUnit3T public abstract TestFilter CheckFilterInCurrentMode(TestFilter filter, IDiscoveryConverter discovery); protected NUnitTestFilterBuilder CreateTestFilterBuilder() - => new NUnitTestFilterBuilder(NUnitEngineAdapter.GetService(), Settings); + => new (NUnitEngineAdapter.GetService(), Settings); protected ITestConverterCommon CreateConverter(DiscoveryConverter discovery) => Settings.DiscoveryMethod == DiscoveryMethod.Current ? discovery.TestConverter : discovery.TestConverterForXml; protected TestFilter CheckFilter(IDiscoveryConverter discovery) diff --git a/src/NUnitTestAdapter/Metadata/AppDomainMetadataProvider.cs b/src/NUnitTestAdapter/Metadata/AppDomainMetadataProvider.cs index 6a2e90dc..2a10bad6 100644 --- a/src/NUnitTestAdapter/Metadata/AppDomainMetadataProvider.cs +++ b/src/NUnitTestAdapter/Metadata/AppDomainMetadataProvider.cs @@ -81,7 +81,7 @@ public void Dispose() private sealed class AppDomainHelper : MarshalByRefObject { - private readonly DirectReflectionMetadataProvider provider = new DirectReflectionMetadataProvider(); + private readonly DirectReflectionMetadataProvider provider = new (); public TypeInfo? GetDeclaringType(string assemblyPath, string reflectedTypeName, string methodName) { diff --git a/src/NUnitTestAdapter/NUnit3TestExecutor.cs b/src/NUnitTestAdapter/NUnit3TestExecutor.cs index b3f07c86..0a7dcb93 100644 --- a/src/NUnitTestAdapter/NUnit3TestExecutor.cs +++ b/src/NUnitTestAdapter/NUnit3TestExecutor.cs @@ -333,7 +333,7 @@ private void RestoreRandomSeed(string assemblyPath) private NUnitTestFilterBuilder CreateTestFilterBuilder() { - return new NUnitTestFilterBuilder(NUnitEngineAdapter.GetService(), Settings); + return new (NUnitEngineAdapter.GetService(), Settings); } diff --git a/src/NUnitTestAdapter/NUnitEngine/DiscoveryConverter.cs b/src/NUnitTestAdapter/NUnitEngine/DiscoveryConverter.cs index 17821fce..cf6939e3 100644 --- a/src/NUnitTestAdapter/NUnitEngine/DiscoveryConverter.cs +++ b/src/NUnitTestAdapter/NUnitEngine/DiscoveryConverter.cs @@ -86,7 +86,7 @@ internal static class NUnitXmlAttributeNames public bool IsExplicitRun => CurrentTestAssembly?.IsExplicit ?? false; - private readonly List loadedTestCases = new List(); + private readonly List loadedTestCases = new (); public IList LoadedTestCases => loadedTestCases; public int NoOfLoadedTestCases => loadedTestCases.Count; @@ -429,7 +429,7 @@ public BaseProperties(string dId, string dName, string dFullname, int dTestcasec RunState = dRunstate; } - public List Properties { get; } = new List(); + public List Properties { get; } = new (); public string Id { get; } public string Name { get; } diff --git a/src/NUnitTestAdapter/NUnitEngine/NUnitDiscoveryTestClasses.cs b/src/NUnitTestAdapter/NUnitEngine/NUnitDiscoveryTestClasses.cs index 97898093..f1da9719 100644 --- a/src/NUnitTestAdapter/NUnitEngine/NUnitDiscoveryTestClasses.cs +++ b/src/NUnitTestAdapter/NUnitEngine/NUnitDiscoveryTestClasses.cs @@ -77,7 +77,7 @@ protected NUnitDiscoverySuiteBase(BaseProperties other, INUnitDiscoverySuiteBase Parent = parent; } - public NUnitDiscoveryProperties NUnitDiscoveryProperties { get; } = new NUnitDiscoveryProperties(); + public NUnitDiscoveryProperties NUnitDiscoveryProperties { get; } = new (); public abstract bool IsExplicit { get; } public virtual bool IsExplicitReverse => RunState == RunStateEnum.Explicit || (Parent?.IsExplicitReverse ?? RunState == RunStateEnum.Explicit); @@ -109,7 +109,7 @@ public void AddTestAssembly(NUnitDiscoveryTestAssembly testAssembly) public class NUnitDiscoveryProperties { - private List TheProperties { get; } = new List(); + private List TheProperties { get; } = new (); public IEnumerable Properties => TheProperties; public void Add(NUnitProperty p) => TheProperties.Add(p); @@ -133,7 +133,7 @@ public sealed class NUnitDiscoveryTestAssembly : NUnitDiscoveryTestSuite public NUnitDiscoveryTestAssembly(BaseProperties theBase, NUnitDiscoveryTestRun parent) : base(theBase, parent) { } - private readonly List allTestCases = new List(); + private readonly List allTestCases = new (); /// /// If all testcases are Explicit, we can run this one. @@ -158,12 +158,12 @@ public override void AddToAllTestCases(NUnitDiscoveryTestCase tc) public sealed class NUnitDiscoveryTestFixture : NUnitDiscoveryCanHaveTestCases { - private readonly List parameterizedMethods = new List(); + private readonly List parameterizedMethods = new (); public IEnumerable ParameterizedMethods => parameterizedMethods; - private readonly List theories = new List(); + private readonly List theories = new (); - private readonly List genericMethods = new List(); + private readonly List genericMethods = new (); public IEnumerable Theories => theories; public override int NoOfActualTestCases => @@ -266,7 +266,7 @@ public interface INUnitDiscoveryCanHaveTestCases : INUnitDiscoverySuiteBase public abstract class NUnitDiscoveryCanHaveTestCases : NUnitDiscoverySuiteBase, INUnitDiscoveryCanHaveTestCases { - private readonly List testCases = new List(); + private readonly List testCases = new (); public IEnumerable TestCases => testCases; public virtual int NoOfActualTestCases => testCases.Count; @@ -297,7 +297,7 @@ public interface INUnitDiscoveryCanHaveTestFixture : INUnitDiscoverySuiteBase public abstract class NUnitDiscoveryCanHaveTestFixture : NUnitDiscoverySuiteBase, INUnitDiscoveryCanHaveTestFixture { - private readonly List testFixtures = new List(); + private readonly List testFixtures = new (); public IEnumerable TestFixtures => testFixtures; @@ -310,11 +310,11 @@ protected NUnitDiscoveryCanHaveTestFixture(BaseProperties theBase, INUnitDiscove } - private readonly List testSuites = new List(); + private readonly List testSuites = new (); - private readonly List genericFixtures = new List(); - private readonly List setUpFixtures = new List(); - private readonly List parameterizedFixtures = new List(); + private readonly List genericFixtures = new (); + private readonly List setUpFixtures = new (); + private readonly List parameterizedFixtures = new (); public IEnumerable TestSuites => testSuites; diff --git a/src/NUnitTestAdapter/NUnitEventListener.cs b/src/NUnitTestAdapter/NUnitEventListener.cs index 6c1e80c1..d79e565d 100644 --- a/src/NUnitTestAdapter/NUnitEventListener.cs +++ b/src/NUnitTestAdapter/NUnitEventListener.cs @@ -50,7 +50,7 @@ public class NUnitEventListener : private readonly ITestExecutionRecorder _recorder; private readonly ITestConverterCommon _testConverter; private readonly IAdapterSettings _settings; - private readonly Dictionary> _outputNodes = new Dictionary>(); + private readonly Dictionary> _outputNodes = new (); #if NET35 public override object InitializeLifetimeService() diff --git a/src/NUnitTestAdapter/NUnitTestFilterBuilder.cs b/src/NUnitTestAdapter/NUnitTestFilterBuilder.cs index 1ac3e1f2..92a1eacf 100644 --- a/src/NUnitTestAdapter/NUnitTestFilterBuilder.cs +++ b/src/NUnitTestAdapter/NUnitTestFilterBuilder.cs @@ -35,7 +35,7 @@ public class NUnitTestFilterBuilder private readonly ITestFilterService _filterService; // ReSharper disable once StringLiteralTypo - public static readonly TestFilter NoTestsFound = new TestFilter(""); + public static readonly TestFilter NoTestsFound = new (""); private readonly IAdapterSettings settings; public NUnitTestFilterBuilder(ITestFilterService filterService, IAdapterSettings settings) diff --git a/src/NUnitTestAdapter/NavigationData.cs b/src/NUnitTestAdapter/NavigationData.cs index 166c1f30..e18754a0 100644 --- a/src/NUnitTestAdapter/NavigationData.cs +++ b/src/NUnitTestAdapter/NavigationData.cs @@ -25,7 +25,7 @@ namespace NUnit.VisualStudio.TestAdapter { public class NavigationData { - public static readonly NavigationData Invalid = new NavigationData(null, 0); + public static readonly NavigationData Invalid = new (null, 0); public NavigationData(string filePath, int lineNumber) { diff --git a/src/NUnitTestAdapter/NavigationDataProvider.cs b/src/NUnitTestAdapter/NavigationDataProvider.cs index 2f920bb8..afe5ad9f 100644 --- a/src/NUnitTestAdapter/NavigationDataProvider.cs +++ b/src/NUnitTestAdapter/NavigationDataProvider.cs @@ -34,7 +34,7 @@ public sealed class NavigationDataProvider : IDisposable private readonly string _assemblyPath; private readonly IMetadataProvider _metadataProvider; private readonly ITestLogger _logger; - private readonly Dictionary _sessionsByAssemblyPath = new Dictionary(StringComparer.OrdinalIgnoreCase); + private readonly Dictionary _sessionsByAssemblyPath = new (StringComparer.OrdinalIgnoreCase); private bool _disableMetadataLookup; public NavigationDataProvider(string assemblyPath, ITestLogger logger) @@ -49,7 +49,7 @@ public NavigationDataProvider(string assemblyPath, ITestLogger logger) #if NET35 internal static AppDomainMetadataProvider CreateMetadataProvider(string assemblyPath) { - return new AppDomainMetadataProvider( + return new ( applicationBase: Path.GetDirectoryName(assemblyPath), configurationFile: assemblyPath + ".config"); } diff --git a/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs b/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs index 0a2d065a..dd9c45a3 100644 --- a/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs +++ b/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs @@ -35,23 +35,23 @@ public class TestFilterParser { private Tokenizer _tokenizer; - private static readonly Token LPAREN = new Token(TokenKind.Symbol, "("); - private static readonly Token RPAREN = new Token(TokenKind.Symbol, ")"); - private static readonly Token AND_OP = new Token(TokenKind.Symbol, "&"); - private static readonly Token OR_OP = new Token(TokenKind.Symbol, "|"); - private static readonly Token NOT_OP = new Token(TokenKind.Symbol, "!"); - - private static readonly Token EQ_OP = new Token(TokenKind.Symbol, "="); - private static readonly Token NE_OP = new Token(TokenKind.Symbol, "!="); - private static readonly Token CONTAINS_OP = new Token(TokenKind.Symbol, "~"); - private static readonly Token NOTCONTAINS_OP = new Token(TokenKind.Symbol, "!~"); - - private static readonly Token[] AND_OPS = new Token[] { AND_OP }; - private static readonly Token[] OR_OPS = new Token[] { OR_OP }; - private static readonly Token[] EQ_OPS = new Token[] { EQ_OP }; - private static readonly Token[] REL_OPS = new Token[] { EQ_OP, NE_OP, CONTAINS_OP, NOTCONTAINS_OP }; - - private static readonly Token EOF = new Token(TokenKind.Eof); + private static readonly Token LPAREN = new (TokenKind.Symbol, "("); + private static readonly Token RPAREN = new (TokenKind.Symbol, ")"); + private static readonly Token AND_OP = new (TokenKind.Symbol, "&"); + private static readonly Token OR_OP = new (TokenKind.Symbol, "|"); + private static readonly Token NOT_OP = new (TokenKind.Symbol, "!"); + + private static readonly Token EQ_OP = new (TokenKind.Symbol, "="); + private static readonly Token NE_OP = new (TokenKind.Symbol, "!="); + private static readonly Token CONTAINS_OP = new (TokenKind.Symbol, "~"); + private static readonly Token NOTCONTAINS_OP = new (TokenKind.Symbol, "!~"); + + private static readonly Token[] AND_OPS = { AND_OP }; + private static readonly Token[] OR_OPS = { OR_OP }; + private static readonly Token[] EQ_OPS = { EQ_OP }; + private static readonly Token[] REL_OPS = { EQ_OP, NE_OP, CONTAINS_OP, NOTCONTAINS_OP }; + + private static readonly Token EOF = new (TokenKind.Eof); public string Parse(string input) { diff --git a/src/NUnitTestAdapter/TraitsFeature.cs b/src/NUnitTestAdapter/TraitsFeature.cs index 69586717..56d1cb02 100644 --- a/src/NUnitTestAdapter/TraitsFeature.cs +++ b/src/NUnitTestAdapter/TraitsFeature.cs @@ -49,7 +49,7 @@ public sealed class CachedTestCaseInfo /// Currently, the only effect this has is to add a Test Explorer grouping header /// for each trait with the name “Name [Value]”, or for an empty value, “Name”. /// - public List Traits { get; } = new List(); + public List Traits { get; } = new (); /// /// Used by ; does not affect the Test Explorer UI. diff --git a/src/NUnitTestAdapterTests/AdapterSettingsTests.cs b/src/NUnitTestAdapterTests/AdapterSettingsTests.cs index 7a035bfd..b285e4d9 100644 --- a/src/NUnitTestAdapterTests/AdapterSettingsTests.cs +++ b/src/NUnitTestAdapterTests/AdapterSettingsTests.cs @@ -63,7 +63,7 @@ public void DefaultSettings(string xml) Assert.That(_settings.TargetPlatform, Is.Null); Assert.That(_settings.TestAdapterPaths, Is.Null); Assert.That(_settings.CollectSourceInformation, Is.True); - Assert.IsEmpty(_settings.TestProperties); + Assert.That(_settings.TestProperties, Is.Empty); Assert.That(_settings.InternalTraceLevel, Is.Null); Assert.That(_settings.WorkDirectory, Is.Null); Assert.That(_settings.NumberOfTestWorkers, Is.EqualTo(-1)); diff --git a/src/NUnitTestAdapterTests/AssemblyRunnerTests.cs b/src/NUnitTestAdapterTests/AssemblyRunnerTests.cs index fe8477c7..fd797b06 100644 --- a/src/NUnitTestAdapterTests/AssemblyRunnerTests.cs +++ b/src/NUnitTestAdapterTests/AssemblyRunnerTests.cs @@ -42,7 +42,7 @@ public void SetUp() // fakeTest2 = new NUnitTestMethod(fakeTestMethod2); } - private static readonly Uri ExecutorUri = new Uri(NUnit3TestExecutor.ExecutorUri); + private static readonly Uri ExecutorUri = new (NUnit3TestExecutor.ExecutorUri); // ReSharper disable once UnusedMember.Local private void FakeTestMethod1() diff --git a/src/NUnitTestAdapterTests/ExecutionTests.cs b/src/NUnitTestAdapterTests/ExecutionTests.cs index 9b90a96e..5171c8c1 100644 --- a/src/NUnitTestAdapterTests/ExecutionTests.cs +++ b/src/NUnitTestAdapterTests/ExecutionTests.cs @@ -34,7 +34,7 @@ public void Setup() discovery.LoadedTestCases.Returns(new List { - new TestCase("A", new Uri(NUnitTestAdapter.ExecutorUri), "line 23") + new ("A", new Uri(NUnitTestAdapter.ExecutorUri), "line 23") }); filter = new TestFilter("AB"); } diff --git a/src/NUnitTestAdapterTests/Fakes/MessageLoggerStub.cs b/src/NUnitTestAdapterTests/Fakes/MessageLoggerStub.cs index bd9a5a7d..db5e8566 100644 --- a/src/NUnitTestAdapterTests/Fakes/MessageLoggerStub.cs +++ b/src/NUnitTestAdapterTests/Fakes/MessageLoggerStub.cs @@ -30,7 +30,7 @@ namespace NUnit.VisualStudio.TestAdapter.Tests.Fakes { public class MessageLoggerStub : IMessageLogger { - private readonly List> messages = new List>(); + private readonly List> messages = new (); public void SendMessage(TestMessageLevel testMessageLevel, string message) { messages.Add(new Tuple(testMessageLevel, message)); diff --git a/src/NUnitTestAdapterTests/Filtering/FilteringTestUtils.cs b/src/NUnitTestAdapterTests/Filtering/FilteringTestUtils.cs index 85ec8997..ef7d9fab 100644 --- a/src/NUnitTestAdapterTests/Filtering/FilteringTestUtils.cs +++ b/src/NUnitTestAdapterTests/Filtering/FilteringTestUtils.cs @@ -45,7 +45,7 @@ public static ITestCaseFilterExpression CreateVSTestFilterExpression(string filt return (ITestCaseFilterExpression)Type.GetType("Microsoft.VisualStudio.TestPlatform.Common.Filtering.TestCaseFilterExpression, Microsoft.VisualStudio.TestPlatform.Common", throwOnError: true).GetTypeInfo() .GetConstructor(new[] { filterExpressionWrapperType }) - .Invoke(new object[] { filterExpressionWrapper }); + .Invoke(new[] { filterExpressionWrapper }); } public static VsTestFilter CreateTestFilter(ITestCaseFilterExpression filterExpression) diff --git a/src/NUnitTestAdapterTests/Filtering/TestDoubleFilterExpression.cs b/src/NUnitTestAdapterTests/Filtering/TestDoubleFilterExpression.cs index 77bf41c2..99931473 100644 --- a/src/NUnitTestAdapterTests/Filtering/TestDoubleFilterExpression.cs +++ b/src/NUnitTestAdapterTests/Filtering/TestDoubleFilterExpression.cs @@ -48,11 +48,7 @@ public bool MatchTestCase(TestCase testCase, Func propertyValueP public static TestDoubleFilterExpression AnyIsEqualTo(string propertyName, object value) { - return new TestDoubleFilterExpression($"{propertyName}={value}", propertyValueProvider => - { - var list = propertyValueProvider.Invoke(propertyName) as IEnumerable; - return list == null ? false : list.Cast().Contains(value); - }); + return new ($"{propertyName}={value}", propertyValueProvider => propertyValueProvider.Invoke(propertyName) is IEnumerable list && list.Cast().Contains(value)); } } } diff --git a/src/NUnitTestAdapterTests/NUnitEngineTests/NUnitTestCaseTests.cs b/src/NUnitTestAdapterTests/NUnitEngineTests/NUnitTestCaseTests.cs index 57d7a8db..4c971a0c 100644 --- a/src/NUnitTestAdapterTests/NUnitEngineTests/NUnitTestCaseTests.cs +++ b/src/NUnitTestAdapterTests/NUnitEngineTests/NUnitTestCaseTests.cs @@ -28,31 +28,30 @@ namespace NUnit.VisualStudio.TestAdapter.Tests.NUnitEngineTests { public class NUnitTestCaseTests { - private string xml_runnable = - @""; + private const string XmlRunnable = @""; - private string xml_explicit = @""; + private const string XmlExplicit = @""; - private string xml_none = @""; + private const string XmlNone = @""; [Test] public void ThatRunStateIsHandledForRunnable() { - var sut = new NUnitEventTestCase(XmlHelper.CreateXmlNode(xml_runnable)); + var sut = new NUnitEventTestCase(XmlHelper.CreateXmlNode(XmlRunnable)); Assert.That(sut.RunState, Is.EqualTo(RunStateEnum.Runnable)); } [Test] public void ThatRunStateIsHandledForExplicit() { - var sut = new NUnitEventTestCase(XmlHelper.CreateXmlNode(xml_explicit)); + var sut = new NUnitEventTestCase(XmlHelper.CreateXmlNode(XmlExplicit)); Assert.That(sut.RunState, Is.EqualTo(RunStateEnum.Explicit)); } [Test] public void ThatRunStateIsHandledForNone() { - var sut = new NUnitEventTestCase(XmlHelper.CreateXmlNode(xml_none)); + var sut = new NUnitEventTestCase(XmlHelper.CreateXmlNode(XmlNone)); Assert.That(sut.RunState, Is.EqualTo(RunStateEnum.NA)); } } diff --git a/src/NUnitTestAdapterTests/NUnitEventListenerOutputTests.cs b/src/NUnitTestAdapterTests/NUnitEventListenerOutputTests.cs index 9f323064..fd49f631 100644 --- a/src/NUnitTestAdapterTests/NUnitEventListenerOutputTests.cs +++ b/src/NUnitTestAdapterTests/NUnitEventListenerOutputTests.cs @@ -15,7 +15,6 @@ public class NUnitEventListenerOutputTests { private ITestExecutionRecorder recorder; private ITestConverterCommon converter; - private IDumpXml dumpxml; private IAdapterSettings settings; private INUnit3TestExecutor executor; @@ -49,7 +48,6 @@ public void Setup() { recorder = Substitute.For(); converter = Substitute.For(); - dumpxml = Substitute.For(); settings = Substitute.For(); executor = Substitute.For(); executor.Settings.Returns(settings); diff --git a/src/NUnitTestAdapterTests/TestDiscoveryTests.cs b/src/NUnitTestAdapterTests/TestDiscoveryTests.cs index cf7e4419..6841b2b1 100644 --- a/src/NUnitTestAdapterTests/TestDiscoveryTests.cs +++ b/src/NUnitTestAdapterTests/TestDiscoveryTests.cs @@ -49,7 +49,7 @@ public class TestDiscoveryTests : ITestCaseDiscoverySink static readonly string MockAssemblyPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "mock-assembly.dll"); - private readonly List testCases = new List(); + private readonly List testCases = new (); private readonly IDiscoveryContext _context; @@ -104,7 +104,7 @@ public void VerifyNestedTestCaseSourceIsAvailable(string name) var testCase = testCases.Find(tc => tc.DisplayName == name); Assert.That(!string.IsNullOrEmpty(testCase.Source)); - Assert.Greater(testCase.LineNumber, 0); + Assert.That(testCase.LineNumber, Is.GreaterThan(0)); } #region ITestCaseDiscoverySink Methods