Пример #1
0
        public void DocumentStateTrackingReadonlyInRunMode()
        {
            SetupMultiProjectSolution();
            var project       = new ProjectUtils.Project(ProjectName);
            var basicLibrary  = new ProjectUtils.Project("BasicLibrary1");
            var cSharpLibrary = new ProjectUtils.Project("CSharpLibrary1");

            VisualStudio.Editor.SetText(@"
Imports System
Imports BasicLibrary1
Module Module1
    Sub Main()
        Console.Read()
    End Sub
End Module
");
            VisualStudio.Workspace.WaitForAsyncOperations(FeatureAttribute.Workspace);
            VisualStudio.Debugger.Go(waitForBreakMode: false);
            VisualStudio.ActivateMainWindow(skipAttachingThreads: true);
            VisualStudio.SolutionExplorer.OpenFile(project, module1FileName);

            VisualStudio.SendKeys.Send(VirtualKey.T);
            string editAndContinueDialogName = "Edit and Continue";

            VisualStudio.Dialog.VerifyOpen(editAndContinueDialogName);
            VisualStudio.Dialog.Click(editAndContinueDialogName, "OK");
            VisualStudio.Dialog.VerifyClosed(editAndContinueDialogName);
            VisualStudio.Editor.Verify.IsProjectItemDirty(expectedValue: false);

            // This module is referred by the loaded module, but not used. So this will not be loaded
            VisualStudio.SolutionExplorer.OpenFile(basicLibrary, "Class1.vb");
            VisualStudio.Workspace.WaitForAsyncOperations(FeatureAttribute.Workspace);
            VisualStudio.SendKeys.Send(VirtualKey.T);
            VisualStudio.Dialog.VerifyOpen(editAndContinueDialogName);
            VisualStudio.Dialog.Click(editAndContinueDialogName, "OK");
            VisualStudio.Dialog.VerifyClosed(editAndContinueDialogName);
            VisualStudio.Editor.Verify.IsProjectItemDirty(expectedValue: false);

            //  This module is not referred by the loaded module. this will not be loaded
            VisualStudio.SolutionExplorer.OpenFile(cSharpLibrary, "File1.cs");
            VisualStudio.Workspace.WaitForAsyncOperations(FeatureAttribute.Workspace);
            VisualStudio.SendKeys.Send(VirtualKey.T);

            string microsoftVisualStudioDialogName = "Microsoft Visual Studio";

            VisualStudio.Dialog.VerifyOpen(microsoftVisualStudioDialogName);
            VisualStudio.Dialog.Click(microsoftVisualStudioDialogName, "OK");
            VisualStudio.Dialog.VerifyClosed(microsoftVisualStudioDialogName);
            VisualStudio.Editor.Verify.IsProjectItemDirty(expectedValue: false);
        }