Exemple #1
0
        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");
            }
        }
Exemple #2
0
        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"
                );
        }
Exemple #3
0
        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");
        }
Exemple #4
0
        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");
            }
        }