diff --git a/src/nunit.analyzers.tests/Extensions/AttributeArgumentSyntaxExtensionsTests.cs b/src/nunit.analyzers.tests/Extensions/AttributeArgumentSyntaxExtensionsTests.cs index bc93daa6..bafa3562 100644 --- a/src/nunit.analyzers.tests/Extensions/AttributeArgumentSyntaxExtensionsTests.cs +++ b/src/nunit.analyzers.tests/Extensions/AttributeArgumentSyntaxExtensionsTests.cs @@ -21,7 +21,7 @@ public async Task CanAssignToWhenArgumentIsNullAndTargetIsReferenceType() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsNullAndTargetIsReferenceType))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -30,7 +30,7 @@ public async Task CanAssignToWhenArgumentIsNullAndTargetIsNullableType() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsNullAndTargetIsNullableType))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -39,7 +39,7 @@ public async Task CanAssignToWhenArgumentIsNullAndTargetIsValueType() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsNullAndTargetIsValueType))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.False); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.False); } [Test] @@ -48,7 +48,7 @@ public async Task CanAssignToWhenArgumentIsNotNullableAndAssignable() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsNotNullableAndAssignable))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -57,7 +57,7 @@ public async Task CanAssignToWhenArgumentIsNullableAndAssignable() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsNullableAndAssignable))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -66,7 +66,7 @@ public async Task CanAssignToWhenArgumentIsNotAssignable() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsNotAssignable))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.False); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.False); } [Test] @@ -75,7 +75,7 @@ public async Task CanAssignToWhenParameterIsInt16AndArgumentIsInt32() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsInt16AndArgumentIsInt32))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -84,7 +84,7 @@ public async Task CanAssignToWhenParameterIsByteAndArgumentIsInt32() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsByteAndArgumentIsInt32))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -93,7 +93,7 @@ public async Task CanAssignToWhenParameterIsSByteAndArgumentIsInt32() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsSByteAndArgumentIsInt32))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -102,7 +102,7 @@ public async Task CanAssignToWhenParameterIsDoubleAndArgumentIsInt32() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDoubleAndArgumentIsInt32))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -111,7 +111,7 @@ public async Task CanAssignToWhenParameterIsDecimalAndArgumentIsDouble() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDecimalAndArgumentIsDouble))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -120,7 +120,7 @@ public async Task CanAssignToWhenParameterIsDecimalAndArgumentIsValidString() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDecimalAndArgumentIsValidString))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -129,7 +129,7 @@ public async Task CanAssignToWhenParameterIsDecimalAndArgumentIsInvalidString() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDecimalAndArgumentIsInvalidString))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.False); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.False); } [Test] @@ -138,7 +138,7 @@ public async Task CanAssignToWhenParameterIsDecimalAndArgumentIsInt32() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDecimalAndArgumentIsInt32))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -147,7 +147,7 @@ public async Task CanAssignToWhenParameterIsNullableInt64AndArgumentIsInt32() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsNullableInt64AndArgumentIsInt32))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -156,7 +156,7 @@ public async Task CanAssignToWhenParameterIsDateTimeAndArgumentIsValidString() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDateTimeAndArgumentIsValidString))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -165,7 +165,7 @@ public async Task CanAssignToWhenParameterIsDateTimeAndArgumentIsInvalidString() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsDateTimeAndArgumentIsInvalidString))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.False); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.False); } [Test] @@ -174,7 +174,7 @@ public async Task CanAssignToWhenParameterIsTimeSpanAndArgumentIsValidString() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsTimeSpanAndArgumentIsValidString))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -183,22 +183,22 @@ public async Task CanAssignToWhenParameterIsTimeSpanAndArgumentIsInvalidString() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenParameterIsTimeSpanAndArgumentIsInvalidString))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.False); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.False); } - private async static Task> GetAttributeSyntaxAsync(string file) + private async static Task<(AttributeArgumentSyntax Syntax, ITypeSymbol TypeSymbol, SemanticModel Model)> GetAttributeSyntaxAsync(string file) { var rootAndModel = await TestHelpers.GetRootAndModel(file); // It's assumed the code will have one attribute with one argument, // along with one method with one parameter - return new Tuple( - rootAndModel.Item1.DescendantNodes().OfType().Single( + return ( + rootAndModel.Node.DescendantNodes().OfType().Single( _ => _.Name.ToFullString() == "Arguments") .DescendantNodes().OfType().Single(), - rootAndModel.Item2.GetDeclaredSymbol( - rootAndModel.Item1.DescendantNodes().OfType().Single()).Parameters[0].Type, - rootAndModel.Item2); + rootAndModel.Model.GetDeclaredSymbol( + rootAndModel.Node.DescendantNodes().OfType().Single()).Parameters[0].Type, + rootAndModel.Model); } [Test] @@ -207,7 +207,7 @@ public async Task CanAssignToWhenArgumentIsImplicitlyTypedArrayAndAssignable() var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsImplicitlyTypedArrayAndAssignable))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.True); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.True); } [Test] @@ -216,7 +216,7 @@ public async Task CanAssignToWhenArgumentIsImplicitlyTypedArrayAndNotAssignable( var values = await AttributeArgumentSyntaxExtensionsTests.GetAttributeSyntaxAsync( $"{AttributeArgumentSyntaxExtensionsTests.BasePath}{(nameof(this.CanAssignToWhenArgumentIsImplicitlyTypedArrayAndNotAssignable))}.cs"); - Assert.That(values.Item1.CanAssignTo(values.Item2, values.Item3), Is.False); + Assert.That(values.Syntax.CanAssignTo(values.TypeSymbol, values.Model), Is.False); } } } diff --git a/src/nunit.analyzers.tests/Extensions/AttributeSyntaxExtensionsTests.cs b/src/nunit.analyzers.tests/Extensions/AttributeSyntaxExtensionsTests.cs index dc8c3202..4d595af8 100644 --- a/src/nunit.analyzers.tests/Extensions/AttributeSyntaxExtensionsTests.cs +++ b/src/nunit.analyzers.tests/Extensions/AttributeSyntaxExtensionsTests.cs @@ -40,7 +40,7 @@ private async static Task GetAttributeSyntaxAsync(string file, { var rootAndModel = await TestHelpers.GetRootAndModel(file); - return rootAndModel.Item1 + return rootAndModel.Node .DescendantNodes().OfType() .Where(_ => _.Identifier.ValueText == typeName).Single() .DescendantNodes().OfType().Single(); diff --git a/src/nunit.analyzers.tests/Extensions/IMethodSymbolExtensionsTests.cs b/src/nunit.analyzers.tests/Extensions/IMethodSymbolExtensionsTests.cs index 7c0bec7c..3b8eebf2 100644 --- a/src/nunit.analyzers.tests/Extensions/IMethodSymbolExtensionsTests.cs +++ b/src/nunit.analyzers.tests/Extensions/IMethodSymbolExtensionsTests.cs @@ -31,7 +31,7 @@ private async Task GetMethodSymbolAsync(string file, string typeN { var rootAndModel = await TestHelpers.GetRootAndModel(file); - return rootAndModel.Item2.GetDeclaredSymbol(rootAndModel.Item1 + return rootAndModel.Model.GetDeclaredSymbol(rootAndModel.Node .DescendantNodes().OfType() .Where(_ => _.Identifier.ValueText == typeName).Single() .DescendantNodes().OfType().Single()) as IMethodSymbol; diff --git a/src/nunit.analyzers.tests/Extensions/ITypeSymbolExtensionsTests.cs b/src/nunit.analyzers.tests/Extensions/ITypeSymbolExtensionsTests.cs index 8e98ce97..39f6eae5 100644 --- a/src/nunit.analyzers.tests/Extensions/ITypeSymbolExtensionsTests.cs +++ b/src/nunit.analyzers.tests/Extensions/ITypeSymbolExtensionsTests.cs @@ -134,7 +134,7 @@ private async Task> GetTypeSymbolAsync(string file, foreach (var typeName in typeNames) { - types.Add(rootAndModel.Item2.GetDeclaredSymbol(rootAndModel.Item1 + types.Add(rootAndModel.Model.GetDeclaredSymbol(rootAndModel.Node .DescendantNodes().OfType() .Where(_ => _.Identifier.ValueText == typeName).Single())); } @@ -146,12 +146,12 @@ private async Task GetTypeSymbolFromFieldAsync(string file, string { var rootAndModel = await TestHelpers.GetRootAndModel(file); - var fieldNode = rootAndModel.Item1 + var fieldNode = rootAndModel.Node .DescendantNodes().OfType() .Where(_ => _.Identifier.ValueText == typeName).Single() .DescendantNodes().OfType().Single(); - return (rootAndModel.Item2.GetDeclaredSymbol(fieldNode.Declaration.Variables[0]) as IFieldSymbol).Type; + return (rootAndModel.Model.GetDeclaredSymbol(fieldNode.Declaration.Variables[0]) as IFieldSymbol).Type; } } } diff --git a/src/nunit.analyzers.tests/TestHelpers.cs b/src/nunit.analyzers.tests/TestHelpers.cs index a12bbb7d..9a2c6245 100644 --- a/src/nunit.analyzers.tests/TestHelpers.cs +++ b/src/nunit.analyzers.tests/TestHelpers.cs @@ -16,7 +16,7 @@ namespace NUnit.Analyzers.Tests { internal static class TestHelpers { - internal static async Task> GetRootAndModel(string file) + internal static async Task<(SyntaxNode Node, SemanticModel Model)> GetRootAndModel(string file) { var code = File.ReadAllText(file); var tree = CSharpSyntaxTree.ParseText(code); @@ -32,7 +32,7 @@ internal static async Task> GetRootAndModel(str var model = compilation.GetSemanticModel(tree); var root = await tree.GetRootAsync().ConfigureAwait(false); - return new Tuple(root, model); + return (root, model); } internal static async Task VerifyActionAsync(List actions, string title, Document document,