public void VerifyLocalVariableRename() { var markup = @" using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { int [|x|]$$ = 0; [|x|] = 5; TestMethod([|x|]); } static void TestMethod(int y) { } }"; using (var telemetry = VisualStudio.EnableTestTelemetryChannel()) { SetUpEditor(markup); InlineRenameDialog.Invoke(); MarkupTestFile.GetSpans(markup, out var _, out ImmutableArray <TextSpan> renameSpans); var tags = VisualStudio.Editor.GetTagSpans(InlineRenameDialog.ValidRenameTag); AssertEx.SetEqual(renameSpans, tags); VisualStudio.Editor.SendKeys(VirtualKey.Y, VirtualKey.Enter); VisualStudio.Editor.Verify.TextContains(@" using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { int y = 0; y = 5; TestMethod(y); } static void TestMethod(int y) { } }"); telemetry.VerifyFired("vs/ide/vbcs/rename/inlinesession/session", "vs/ide/vbcs/rename/commitcore"); } }
public void FindReferencesToLocals() { using var telemetry = VisualStudio.EnableTestTelemetryChannel(); SetUpEditor( @" class Program { static void Main() { int local = 1; Console.WriteLine(local$$); } } " ); VisualStudio.Editor.SendKeys(Shift(VirtualKey.F12)); const string localReferencesCaption = "'local' references"; var results = VisualStudio.FindReferencesWindow.GetContents(localReferencesCaption); var activeWindowCaption = VisualStudio.Shell.GetActiveWindowCaption(); Assert.Equal(expected: localReferencesCaption, actual: activeWindowCaption); Assert.Collection( results, new Action <Reference>[] { reference => { Assert.Equal(expected: "int local = 1;", actual: reference.Code); Assert.Equal(expected: 5, actual: reference.Line); Assert.Equal(expected: 12, actual: reference.Column); }, reference => { Assert.Equal(expected: "Console.WriteLine(local);", actual: reference.Code); Assert.Equal(expected: 6, actual: reference.Line); Assert.Equal(expected: 26, actual: reference.Column); } } ); telemetry.VerifyFired( "vs/platform/findallreferences/search", "vs/ide/vbcs/commandhandler/findallreference" ); }
public void NavigateTo() { using var telemetry = VisualStudio.EnableTestTelemetryChannel(); var project = new ProjectUtils.Project(ProjectName); VisualStudio.SolutionExplorer.AddFile( project, "test1.cs", open: false, contents: @" class FirstClass { void FirstMethod() { } }" ); VisualStudio.SolutionExplorer.AddFile( project, "test2.cs", open: true, contents: @" " ); VisualStudio.Editor.InvokeNavigateTo("FirstMethod", VirtualKey.Enter); VisualStudio.Editor.WaitForActiveView("test1.cs"); Assert.Equal("FirstMethod", VisualStudio.Editor.GetSelectedText()); // Add a VB project and verify that VB files are found when searching from C# var vbProject = new ProjectUtils.Project("VBProject"); VisualStudio.SolutionExplorer.AddProject( vbProject, WellKnownProjectTemplates.ClassLibrary, LanguageNames.VisualBasic ); VisualStudio.SolutionExplorer.AddFile(vbProject, "vbfile.vb", open: true); VisualStudio.Editor.InvokeNavigateTo("FirstClass", VirtualKey.Enter); VisualStudio.Editor.WaitForActiveView("test1.cs"); Assert.Equal("FirstClass", VisualStudio.Editor.GetSelectedText()); telemetry.VerifyFired("vs/ide/vbcs/navigateto/search", "vs/platform/goto/launch"); }
public void VerifyAddImportsOnPaste() { var project = new Microsoft.VisualStudio.IntegrationTest.Utilities.Common.ProjectUtils.Project(ProjectName); VisualStudio.SolutionExplorer.AddFile(project, "Example.cs", contents: @" public class Example { } "); SetUpEditor(@" using System; class Program { static void Main(string[] args) { } $$ }"); using var telemetry = VisualStudio.EnableTestTelemetryChannel(); VisualStudio.Workspace.SetFeatureOption(FeatureOnOffOptions.AddImportsOnPaste.Feature, FeatureOnOffOptions.AddImportsOnPaste.Name, LanguageNames.CSharp, "True"); VisualStudio.Editor.Paste(@"Task DoThingAsync() => Task.CompletedTask;"); VisualStudio.Editor.Verify.TextContains(@" using System; using System.Threading.Tasks; class Program { static void Main(string[] args) { } Task DoThingAsync() => Task.CompletedTask; }"); telemetry.VerifyFired("vs/ide/vbcs/commandhandler/paste/importsonpaste"); }
public void AlignOpenBraceWithMethodDeclaration() { using (var telemetry = VisualStudio.EnableTestTelemetryChannel()) { SetUpEditor(@" $$class C { void Main() { } }"); VisualStudio.Editor.FormatDocument(); VisualStudio.Editor.Verify.TextContains(@" class C { void Main() { } }"); telemetry.VerifyFired("vs/ide/vbcs/commandhandler/formatcommand"); } }