/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Features/VisualBasicTest/SimplifyThisOrMe/SimplifyThisOrMeTests.vb
352 строки
11 KB
Cyrus Najmabadi
Update tests
23 июл 2025, 12:31
23 июл 2025, 12:31
3871b9d
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.CodeStyle Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Editor.UnitTests.CodeActions Imports Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Diagnostics Imports Microsoft.CodeAnalysis.VisualBasic.SimplifyThisOrMe Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.SimplifyThisOrMe Partial Public Class SimplifyThisOrMeTests Inherits AbstractVisualBasicDiagnosticProviderBasedUserDiagnosticTest_NoEditor Friend Overrides Function CreateDiagnosticProviderAndFixer(workspace As Workspace) As (DiagnosticAnalyzer, CodeFixProvider) Return (New VisualBasicSimplifyThisOrMeDiagnosticAnalyzer(), New VisualBasicSimplifyThisOrMeCodeFixProvider()) End Function <Fact, Trait(Traits.Feature, Traits.Features.CodeActionsSimplifyThisOrMe)> <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/965208")> Public Async Function TestSimplifyDiagnosticId() As Task Dim source = <Code> Imports System Class C Dim x as Integer Sub F() Dim z = [|Me.x|] End Sub End Module </Code> Dim parameters3 As New TestParameters() Using workspace = CreateWorkspaceFromOptions(source.ToString(), parameters3) Dim diagnostics = (Await GetDiagnosticsAsync(workspace, parameters3)).Where(Function(d) d.Id = IDEDiagnosticIds.RemoveThisOrMeQualificationDiagnosticId) Assert.Equal(1, diagnostics.Count) End Using End Function <Fact, Trait(Traits.Feature, Traits.Features.CodeActionsSimplifyThisOrMe)> <WorkItem("https://github.com/dotnet/roslyn/issues/6682")> Public Async Function TestMeWithNoType() As Task Await TestInRegularAndScriptAsync( "Class C Dim x = 7 Sub M() [|Me|].x = Nothing End Sub End Class", "Class C Dim x = 7 Sub M() x = Nothing End Sub End Class") End Function <Fact, Trait(Traits.Feature, Traits.Features.CodeActionsSimplifyThisOrMe)> Public Async Function TestAppropriateDiagnosticOnMissingQualifier() As Task Await TestDiagnosticInfoAsync( "Class C : Property SomeProperty As Integer : Sub M() : [|Me|].SomeProperty = 1 : End Sub : End Class", options:=New OptionsCollection(GetLanguage()) From {{CodeStyleOptions2.QualifyPropertyAccess, False, NotificationOption2.Error}}, diagnosticId:=IDEDiagnosticIds.RemoveThisOrMeQualificationDiagnosticId, diagnosticSeverity:=DiagnosticSeverity.Error) End Function <Fact> <Trait(Traits.Feature, Traits.Features.CodeActionsSimplifyThisOrMe)> <Trait(Traits.Feature, Traits.Features.CodeActionsFixAllOccurrences)> Public Async Function TestFixAllInSolution_RemoveMe() As Task Dim input = <Workspace> <Project Language="Visual Basic" AssemblyName="Assembly1" CommonReferences="true"> <Document><![CDATA[ Imports System Class ProgramA Dim x As Integer = 0 Dim y As Integer = 0 Dim z As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = {|FixAllInSolution:Me.x|} Dim s1 As System.Int16 = Me.y Dim i2 As System.Int32 = Me.z System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class Class ProgramB Dim x2 As Integer = 0 Dim y2 As Integer = 0 Dim z2 As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = Me.x2 Dim s1 As System.Int16 = Me.y2 Dim i2 As System.Int32 = Me.z2 System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class ]]> </Document> <Document><![CDATA[ Imports System Class ProgramA2 Dim x As Integer = 0 Dim y As Integer = 0 Dim z As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = Me.x Dim s1 As System.Int16 = Me.y Dim i2 As System.Int32 = Me.z System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class Class ProgramB2 Dim x2 As Integer = 0 Dim y2 As Integer = 0 Dim z2 As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = Me.x2 Dim s1 As System.Int16 = Me.y2 Dim i2 As System.Int32 = Me.z2 System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class]]> </Document> </Project> <Project Language="Visual Basic" AssemblyName="Assembly2" CommonReferences="true"> <ProjectReference>Assembly1</ProjectReference> <Document><![CDATA[ Imports System Class ProgramA3 Dim x As Integer = 0 Dim y As Integer = 0 Dim z As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = Me.x Dim s1 As System.Int16 = Me.y Dim i2 As System.Int32 = Me.z System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class Class ProgramB3 Dim x2 As Integer = 0 Dim y2 As Integer = 0 Dim z2 As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = Me.x2 Dim s1 As System.Int16 = Me.y2 Dim i2 As System.Int32 = Me.z2 System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class]]> </Document> </Project> </Workspace>.ToString() Dim expected = <Workspace> <Project Language="Visual Basic" AssemblyName="Assembly1" CommonReferences="true"> <Document><![CDATA[ Imports System Class ProgramA Dim x As Integer = 0 Dim y As Integer = 0 Dim z As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = x Dim s1 As System.Int16 = y Dim i2 As System.Int32 = z System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class Class ProgramB Dim x2 As Integer = 0 Dim y2 As Integer = 0 Dim z2 As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = x2 Dim s1 As System.Int16 = y2 Dim i2 As System.Int32 = z2 System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class ]]> </Document> <Document><![CDATA[ Imports System Class ProgramA2 Dim x As Integer = 0 Dim y As Integer = 0 Dim z As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = x Dim s1 As System.Int16 = y Dim i2 As System.Int32 = z System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class Class ProgramB2 Dim x2 As Integer = 0 Dim y2 As Integer = 0 Dim z2 As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = x2 Dim s1 As System.Int16 = y2 Dim i2 As System.Int32 = z2 System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class]]> </Document> </Project> <Project Language="Visual Basic" AssemblyName="Assembly2" CommonReferences="true"> <ProjectReference>Assembly1</ProjectReference> <Document><![CDATA[ Imports System Class ProgramA3 Dim x As Integer = 0 Dim y As Integer = 0 Dim z As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = x Dim s1 As System.Int16 = y Dim i2 As System.Int32 = z System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class Class ProgramB3 Dim x2 As Integer = 0 Dim y2 As Integer = 0 Dim z2 As Integer = 0 Private Function F(p1 As System.Int32, p2 As System.Int16) As System.Int32 Dim i1 As System.Int32 = x2 Dim s1 As System.Int16 = y2 Dim i2 As System.Int32 = z2 System.Console.WriteLine(i1 + s1 + i2) Return i1 + s1 + i2 End Function End Class]]> </Document> </Project> </Workspace>.ToString() Await TestInRegularAndScriptAsync(input, expected) End Function <Fact> <Trait(Traits.Feature, Traits.Features.CodeActionsSimplifyThisOrMe)> <Trait(Traits.Feature, Traits.Features.CodeActionsFixAllOccurrences)> Public Async Function TestFixAllInSolution_RemoveMemberAccessQualification() As Task Dim input = <Workspace> <Project Language="Visual Basic" AssemblyName="Assembly1" CommonReferences="true"> <Document><![CDATA[ Imports System Class C Property SomeProperty As Integer Property OtherProperty As Integer Sub M() {|FixAllInSolution:Me.SomeProperty|} = 1 Dim x = Me.OtherProperty End Sub End Class]]> </Document> <Document><![CDATA[ Imports System Class D Property StringProperty As String field As Integer Sub N() Me.StringProperty = String.Empty Me.field = 0 ' ensure qualification isn't removed End Sub End Class]]> </Document> </Project> </Workspace>.ToString() Dim expected = <Workspace> <Project Language="Visual Basic" AssemblyName="Assembly1" CommonReferences="true"> <Document><![CDATA[ Imports System Class C Property SomeProperty As Integer Property OtherProperty As Integer Sub M() SomeProperty = 1 Dim x = OtherProperty End Sub End Class]]> </Document> <Document><![CDATA[ Imports System Class D Property StringProperty As String field As Integer Sub N() StringProperty = String.Empty Me.field = 0 ' ensure qualification isn't removed End Sub End Class]]> </Document> </Project> </Workspace>.ToString() Dim options = New OptionsCollection(GetLanguage()) From { {CodeStyleOptions2.QualifyPropertyAccess, False, NotificationOption2.Suggestion}, {CodeStyleOptions2.QualifyFieldAccess, True, NotificationOption2.Suggestion} } Await TestInRegularAndScriptAsync( initialMarkup:=input, expectedMarkup:=expected, New TestParameters(options:=options)) End Function End Class End Namespace