File: OutOfProcess\InteractiveWindow_OutOfProc.cs
Web Access
Project: ..\..\..\src\VisualStudio\IntegrationTest\TestUtilities\Microsoft.VisualStudio.IntegrationTest.Utilities.csproj (Microsoft.VisualStudio.IntegrationTest.Utilities)
// 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.
 
using Microsoft.VisualStudio.IntegrationTest.Utilities.InProcess;
 
namespace Microsoft.VisualStudio.IntegrationTest.Utilities.OutOfProcess
{
    /// <summary>
    /// Provides a means of interacting with the interactive window in the Visual Studio host.
    /// </summary>
    public abstract partial class InteractiveWindow_OutOfProc : TextViewWindow_OutOfProc
    {
        private readonly InteractiveWindow_InProc _interactiveWindowInProc;
        private readonly VisualStudioInstance _instance;
 
        public new Verifier Verify { get; }
 
        internal InteractiveWindow_OutOfProc(VisualStudioInstance visualStudioInstance)
            : base(visualStudioInstance)
        {
            _instance = visualStudioInstance;
            _interactiveWindowInProc = (InteractiveWindow_InProc)_textViewWindowInProc;
            Verify = new Verifier(this, visualStudioInstance);
        }
 
        public void Initialize()
            => _interactiveWindowInProc.Initialize();
 
        /// <summary>
        /// Gets the last input from the REPL.
        /// </summary>
        public string GetLastReplInput()
            => _interactiveWindowInProc.GetLastReplInput();
 
        public string GetReplText()
            => _interactiveWindowInProc.GetReplText();
 
        public void ClearReplText()
        {
            // Dismiss the pop-up (if any)
            _instance.ExecuteCommand(WellKnownCommandNames.Edit_SelectionCancel);
 
            // Clear the line
            _instance.ExecuteCommand(WellKnownCommandNames.Edit_SelectionCancel);
        }
 
        public void ShowWindow(bool waitForPrompt = true)
            => _interactiveWindowInProc.ShowWindow(waitForPrompt);
 
        public void Reset(bool waitForPrompt = true)
            => _interactiveWindowInProc.Reset(waitForPrompt);
 
        public void SubmitText(string text)
            => _interactiveWindowInProc.SubmitText(text);
 
        public void WaitForReplOutput(string outputText)
            => _interactiveWindowInProc.WaitForReplOutput(outputText);
 
        public void WaitForLastReplOutputContains(string outputText)
            => _interactiveWindowInProc.WaitForLastReplOutputContains(outputText);
 
        public void WaitForLastReplOutput(string outputText)
            => _interactiveWindowInProc.WaitForLastReplOutput(outputText);
 
        public void WaitForLastReplInput(string outputText)
            => _interactiveWindowInProc.WaitForLastReplInput(outputText);
 
        public void WaitForLastReplInputContains(string outputText)
            => _interactiveWindowInProc.WaitForLastReplInputContains(outputText);
 
        public void CloseInteractiveWindow()
            => _interactiveWindowInProc.CloseWindow();
 
        public void ClearScreen()
            => _interactiveWindowInProc.ClearScreen();
 
        public void InsertCode(string text)
            => _interactiveWindowInProc.InsertCode(text);
    }
}