File: Services\IntegrationTestServices.cs
Web Access
Project: src\src\Razor\src\Razor\test\Microsoft.VisualStudioCode.Razor.IntegrationTests\Microsoft.VisualStudioCode.Razor.IntegrationTests.csproj (Microsoft.VisualStudioCode.Razor.IntegrationTests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Xunit.Abstractions;
 
namespace Microsoft.VisualStudioCode.Razor.IntegrationTests.Services;
 
/// <summary>
/// Provides services for VS Code integration tests.
/// This is the main entry point for test code to interact with VS Code.
/// </summary>
public class IntegrationTestServices
{
    public IntegrationTestServices(ITestOutputHelper output, TestSettings settings)
    {
        Settings = settings;
        Logger = new LoggerService(output);
        Playwright = new PlaywrightService(this);
        Workspace = new WorkspaceService(this);
        VSCode = new VSCodeService(this);
        Editor = new EditorService(this);
        Input = new InputService(this);
        CodeAction = new CodeActionService(this);
        Hover = new HoverServices(this);
        Completion = new CompletionServices(this);
        Diagnostics = new DiagnosticsServices(this);
        Navigation = new NavigationServices(this);
        Formatting = new FormattingServices(this);
        Razor = new RazorService(this);
    }
 
    /// <summary>
    /// Gets the test settings.
    /// </summary>
    public TestSettings Settings { get; }
 
    /// <summary>
    /// Gets the logger service for test output.
    /// </summary>
    public LoggerService Logger { get; }
 
    /// <summary>
    /// Gets the Playwright service for browser automation.
    /// </summary>
    public PlaywrightService Playwright { get; }
 
    /// <summary>
    /// Gets the workspace service for test workspace management.
    /// </summary>
    public WorkspaceService Workspace { get; }
 
    /// <summary>
    /// Gets the VS Code service for lifecycle and file operations.
    /// </summary>
    public VSCodeService VSCode { get; }
 
    /// <summary>
    /// Gets the VS Code editor helper for editor operations.
    /// </summary>
    public EditorService Editor { get; }
 
    /// <summary>
    /// Gets the input service for keyboard and mouse input.
    /// </summary>
    public InputService Input { get; }
 
    /// <summary>
    /// Gets the code action (Quick Fix, refactoring) service.
    /// </summary>
    public CodeActionService CodeAction { get; }
 
    /// <summary>
    /// Gets hover (Quick Info) services.
    /// </summary>
    public HoverServices Hover { get; }
 
    /// <summary>
    /// Gets completion (IntelliSense) services.
    /// </summary>
    public CompletionServices Completion { get; }
 
    /// <summary>
    /// Gets diagnostics (error squiggles) services.
    /// </summary>
    public DiagnosticsServices Diagnostics { get; }
 
    /// <summary>
    /// Gets navigation (Go to Definition, Find References) services.
    /// </summary>
    public NavigationServices Navigation { get; }
 
    /// <summary>
    /// Gets formatting services.
    /// </summary>
    public FormattingServices Formatting { get; }
 
    /// <summary>
    /// Gets Razor language server services.
    /// </summary>
    public RazorService Razor { get; }
}