зеркало из https://github.com/dotnet/razor.git
Remove SnapshotResolver
This commit is contained in:
Родитель
ecf6e10dc9
Коммит
a94b7f36e5
|
@ -18,13 +18,11 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer;
|
|||
|
||||
internal sealed class DocumentContextFactory(
|
||||
IProjectSnapshotManager projectManager,
|
||||
ISnapshotResolver snapshotResolver,
|
||||
IDocumentVersionCache documentVersionCache,
|
||||
ILoggerFactory loggerFactory)
|
||||
: IDocumentContextFactory
|
||||
{
|
||||
private readonly IProjectSnapshotManager _projectManager = projectManager;
|
||||
private readonly ISnapshotResolver _snapshotResolver = snapshotResolver;
|
||||
private readonly IDocumentVersionCache _documentVersionCache = documentVersionCache;
|
||||
private readonly ILogger _logger = loggerFactory.GetOrCreateLogger<DocumentContextFactory>();
|
||||
|
||||
|
|
|
@ -210,7 +210,6 @@ internal static class IServiceCollectionExtensions
|
|||
services.AddSingleton((services) => (IRazorStartupService)services.GetRequiredService<IDocumentVersionCache>());
|
||||
|
||||
services.AddSingleton<RemoteTextLoaderFactory, DefaultRemoteTextLoaderFactory>();
|
||||
services.AddSingleton<ISnapshotResolver, SnapshotResolver>();
|
||||
services.AddSingleton<IRazorProjectService, RazorProjectService>();
|
||||
services.AddSingleton<IRazorStartupService, OpenDocumentGenerator>();
|
||||
services.AddSingleton<IRazorDocumentMappingService, RazorDocumentMappingService>();
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the MIT license. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Immutable;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Razor.ProjectSystem;
|
||||
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem;
|
||||
|
||||
internal interface ISnapshotResolver
|
||||
{
|
||||
/// <summary>
|
||||
/// Finds a <see cref="IDocumentSnapshot"/> for the given document path that is contained within any project, and returns the first
|
||||
/// one found if it does. This method should be avoided where possible, and the overload that takes a <see cref="ProjectKey"/> should be used instead
|
||||
/// </summary>
|
||||
bool TryResolveDocumentInAnyProject(string documentFilePath, [NotNullWhen(true)] out IDocumentSnapshot? document);
|
||||
}
|
|
@ -25,7 +25,6 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem;
|
|||
|
||||
internal class RazorProjectService(
|
||||
RemoteTextLoaderFactory remoteTextLoaderFactory,
|
||||
ISnapshotResolver snapshotResolver,
|
||||
IDocumentVersionCache documentVersionCache,
|
||||
IProjectSnapshotManager projectManager,
|
||||
ILoggerFactory loggerFactory)
|
||||
|
@ -33,7 +32,6 @@ internal class RazorProjectService(
|
|||
{
|
||||
private readonly IProjectSnapshotManager _projectManager = projectManager;
|
||||
private readonly RemoteTextLoaderFactory _remoteTextLoaderFactory = remoteTextLoaderFactory;
|
||||
private readonly ISnapshotResolver _snapshotResolver = snapshotResolver;
|
||||
private readonly IDocumentVersionCache _documentVersionCache = documentVersionCache;
|
||||
private readonly ILogger _logger = loggerFactory.GetOrCreateLogger<RazorProjectService>();
|
||||
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the MIT license. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Immutable;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Razor.PooledObjects;
|
||||
using Microsoft.AspNetCore.Razor.Utilities;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
using Microsoft.CodeAnalysis.Razor.Logging;
|
||||
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
|
||||
using Microsoft.CommonLanguageServerProtocol.Framework;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem;
|
||||
|
||||
internal sealed class SnapshotResolver(IProjectSnapshotManager projectManager, ILoggerFactory loggerFactory) : ISnapshotResolver
|
||||
{
|
||||
private readonly IProjectSnapshotManager _projectManager = projectManager;
|
||||
private readonly ILogger _logger = loggerFactory.GetOrCreateLogger<SnapshotResolver>();
|
||||
|
||||
public bool TryResolveDocumentInAnyProject(string documentFilePath, [NotNullWhen(true)] out IDocumentSnapshot? document)
|
||||
{
|
||||
_logger.LogTrace($"Looking for {documentFilePath}.");
|
||||
|
||||
var normalizedDocumentPath = FilePathNormalizer.Normalize(documentFilePath);
|
||||
var potentialProjects = _projectManager.FindPotentialProjects(documentFilePath);
|
||||
|
||||
foreach (var project in potentialProjects)
|
||||
{
|
||||
if (project.GetDocument(normalizedDocumentPath) is { } projectDocument)
|
||||
{
|
||||
_logger.LogTrace($"Found {documentFilePath} in {project.FilePath}");
|
||||
document = projectDocument;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
_logger.LogTrace($"Looking for {documentFilePath} in miscellaneous project.");
|
||||
var miscellaneousProject = _projectManager.GetMiscellaneousProject();
|
||||
|
||||
if (miscellaneousProject.GetDocument(normalizedDocumentPath) is { } miscDocument)
|
||||
{
|
||||
_logger.LogTrace($"Found {documentFilePath} in miscellaneous project.");
|
||||
document = miscDocument;
|
||||
return true;
|
||||
}
|
||||
|
||||
_logger.LogTrace($"{documentFilePath} not found in {string.Join(", ", _projectManager.GetProjects().SelectMany(p => p.DocumentFilePaths))}");
|
||||
|
||||
document = null;
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -46,7 +46,6 @@ public class DefaultRazorComponentSearchEngineTest(ITestOutputHelper testOutput)
|
|||
{
|
||||
_projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(_projectManager, LoggerFactory);
|
||||
var documentVersionCache = new DocumentVersionCache(_projectManager);
|
||||
|
||||
var remoteTextLoaderFactoryMock = new StrictMock<RemoteTextLoaderFactory>();
|
||||
|
@ -64,7 +63,6 @@ public class DefaultRazorComponentSearchEngineTest(ITestOutputHelper testOutput)
|
|||
|
||||
var projectService = new TestRazorProjectService(
|
||||
remoteTextLoaderFactoryMock.Object,
|
||||
snapshotResolver,
|
||||
documentVersionCache,
|
||||
_projectManager,
|
||||
LoggerFactory);
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
// Licensed under the MIT license. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
|
@ -38,9 +37,7 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
var filePath = FilePathNormalizer.Normalize(Path.Combine(s_baseDirectory, "file.cshtml"));
|
||||
var uri = new Uri(filePath);
|
||||
|
||||
var snapshotResolver = new TestSnapshotResolver();
|
||||
|
||||
var factory = new DocumentContextFactory(_projectManager, snapshotResolver, _documentVersionCache, LoggerFactory);
|
||||
var factory = new DocumentContextFactory(_projectManager, _documentVersionCache, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.False(factory.TryCreate(uri, out _));
|
||||
|
@ -53,9 +50,7 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
var filePath = FilePathNormalizer.Normalize(Path.Combine(s_baseDirectory, "file.cshtml"));
|
||||
var uri = new Uri(filePath);
|
||||
|
||||
var snapshotResolver = new TestSnapshotResolver();
|
||||
|
||||
var factory = new DocumentContextFactory(_projectManager, snapshotResolver, _documentVersionCache, LoggerFactory);
|
||||
var factory = new DocumentContextFactory(_projectManager, _documentVersionCache, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.False(factory.TryCreateForOpenDocument(uri, out _));
|
||||
|
@ -75,8 +70,7 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
updater.DocumentAdded(MiscFilesHostProject.Instance.Key, hostDocument, CreateTextLoader(filePath, ""));
|
||||
});
|
||||
|
||||
var snapshotResolver = new TestSnapshotResolver();
|
||||
var factory = new DocumentContextFactory(_projectManager, snapshotResolver, _documentVersionCache, LoggerFactory);
|
||||
var factory = new DocumentContextFactory(_projectManager, _documentVersionCache, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.False(factory.TryCreateForOpenDocument(uri, out _));
|
||||
|
@ -100,8 +94,7 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
var documentSnapshot = miscFilesProject.GetDocument(filePath);
|
||||
Assert.NotNull(documentSnapshot);
|
||||
|
||||
var snapshotResolver = new TestSnapshotResolver();
|
||||
var factory = new DocumentContextFactory(_projectManager, snapshotResolver, _documentVersionCache, LoggerFactory);
|
||||
var factory = new DocumentContextFactory(_projectManager, _documentVersionCache, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.True(factory.TryCreate(uri, out var documentContext));
|
||||
|
@ -120,8 +113,7 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
var projectFilePath = Path.Combine(s_baseDirectory, "project.csproj");
|
||||
var uri = new Uri(filePath);
|
||||
|
||||
var snapshotResolver = new TestSnapshotResolver();
|
||||
var factory = new DocumentContextFactory(_projectManager, snapshotResolver, _documentVersionCache, LoggerFactory);
|
||||
var factory = new DocumentContextFactory(_projectManager, _documentVersionCache, LoggerFactory);
|
||||
|
||||
var hostProject = new HostProject(projectFilePath, intermediateOutputPath, RazorConfiguration.Default, rootNamespace: null);
|
||||
var hostDocument = new HostDocument(filePath, "file.cshtml");
|
||||
|
@ -157,9 +149,8 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
var documentSnapshot = miscFilesProject.GetDocument(filePath);
|
||||
Assert.NotNull(documentSnapshot);
|
||||
|
||||
var snapshotResolver = new TestSnapshotResolver();
|
||||
_documentVersionCache.TrackDocumentVersion(documentSnapshot, version: 1337);
|
||||
var factory = new DocumentContextFactory(_projectManager, snapshotResolver, _documentVersionCache, LoggerFactory);
|
||||
var factory = new DocumentContextFactory(_projectManager, _documentVersionCache, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.True(factory.TryCreateForOpenDocument(uri, out var documentContext));
|
||||
|
@ -169,21 +160,4 @@ public class DocumentContextFactoryTest : LanguageServerTestBase
|
|||
Assert.Equal(uri, documentContext.Uri);
|
||||
Assert.Same(documentSnapshot, documentContext.Snapshot);
|
||||
}
|
||||
|
||||
private sealed class TestSnapshotResolver(IDocumentSnapshot? documentSnapshot = null) : ISnapshotResolver
|
||||
{
|
||||
private readonly IDocumentSnapshot? _documentSnapshot = documentSnapshot;
|
||||
|
||||
public bool TryResolveDocumentInAnyProject(string documentFilePath, [NotNullWhen(true)] out IDocumentSnapshot? document)
|
||||
{
|
||||
if (documentFilePath == _documentSnapshot?.FilePath)
|
||||
{
|
||||
document = _documentSnapshot;
|
||||
return true;
|
||||
}
|
||||
|
||||
document = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@ using System.Threading;
|
|||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.AspNetCore.Razor.LanguageServer.Hosting;
|
||||
using Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem;
|
||||
using Microsoft.AspNetCore.Razor.ProjectSystem;
|
||||
using Microsoft.AspNetCore.Razor.Test.Common.LanguageServer;
|
||||
using Microsoft.AspNetCore.Razor.Test.Common.ProjectSystem;
|
||||
|
@ -31,8 +30,6 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
// Arrange
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var project = await projectManager.UpdateAsync(updater => updater.CreateAndAddProject("c:/path/project.csproj"));
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/index.razor");
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/MyTagHelper.razor");
|
||||
|
@ -54,7 +51,7 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
await projectManager.UpdateAsync(updater => updater.DocumentOpened(project.Key, razorFilePath, SourceText.From("<div></div>")));
|
||||
var documentSnapshot = projectManager.GetLoadedProject(project.Key).GetDocument(razorFilePath).AssumeNotNull();
|
||||
documentVersionCache.TrackDocumentVersion(documentSnapshot, 1);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, snapshotResolver, documentVersionCache, LoggerFactory);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, documentVersionCache, LoggerFactory);
|
||||
Assert.True(documentContextFactory.TryCreateForOpenDocument(uri, null, out var documentContext));
|
||||
|
||||
var clientConnection = new Mock<IClientConnection>(MockBehavior.Strict);
|
||||
|
@ -95,8 +92,6 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
// Arrange
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var project = await projectManager.UpdateAsync(updater => updater.CreateAndAddProject("c:/path/project.csproj"));
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/index.razor");
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/MyTagHelper.razor");
|
||||
|
@ -118,7 +113,7 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
await projectManager.UpdateAsync(updater => updater.DocumentOpened(project.Key, razorFilePath, SourceText.From("<div></div>")));
|
||||
var documentSnapshot = projectManager.GetLoadedProject(project.Key).GetDocument(razorFilePath).AssumeNotNull();
|
||||
documentVersionCache.TrackDocumentVersion(documentSnapshot, 1);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, snapshotResolver, documentVersionCache, LoggerFactory);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, documentVersionCache, LoggerFactory);
|
||||
Assert.True(documentContextFactory.TryCreateForOpenDocument(uri, null, out var documentContext));
|
||||
|
||||
var clientConnection = new Mock<IClientConnection>(MockBehavior.Strict);
|
||||
|
@ -164,8 +159,6 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
// Arrange
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var project = await projectManager.UpdateAsync(updater => updater.CreateAndAddProject("c:/path/project.csproj"));
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/index.razor");
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/fetchdata.razor");
|
||||
|
@ -193,7 +186,7 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
await projectManager.UpdateAsync(updater => updater.DocumentOpened(project.Key, razorFilePath, SourceText.From("<div></div>")));
|
||||
var documentSnapshot = projectManager.GetLoadedProject(project.Key).GetDocument(razorFilePath).AssumeNotNull();
|
||||
documentVersionCache.TrackDocumentVersion(documentSnapshot, 1);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, snapshotResolver, documentVersionCache, LoggerFactory);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, documentVersionCache, LoggerFactory);
|
||||
Assert.True(documentContextFactory.TryCreateForOpenDocument(uri, null, out var documentContext));
|
||||
|
||||
var clientConnection = new Mock<IClientConnection>(MockBehavior.Strict);
|
||||
|
@ -395,8 +388,6 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
// Arrange
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var project = await projectManager.UpdateAsync(updater => updater.CreateAndAddProject("c:/path/project.csproj"));
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/index.razor");
|
||||
await projectManager.CreateAndAddDocumentAsync(project, "c:/path/fetchdata.razor");
|
||||
|
@ -419,7 +410,7 @@ public class TextDocumentUriPresentationEndpointTests(ITestOutputHelper testOutp
|
|||
await projectManager.UpdateAsync(updater => updater.DocumentOpened(project.Key, razorFilePath, SourceText.From("<div></div>")));
|
||||
var documentSnapshot = projectManager.GetLoadedProject(project.Key).GetDocument(razorFilePath).AssumeNotNull();
|
||||
documentVersionCache.TrackDocumentVersion(documentSnapshot, 1);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, snapshotResolver, documentVersionCache, LoggerFactory);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, documentVersionCache, LoggerFactory);
|
||||
Assert.True(documentContextFactory.TryCreateForOpenDocument(uri, null, out var documentContext));
|
||||
|
||||
var clientConnection = new Mock<IClientConnection>(MockBehavior.Strict);
|
||||
|
|
|
@ -32,7 +32,6 @@ public class RazorProjectServiceTest(ITestOutputHelper testOutput) : LanguageSer
|
|||
// Each of these is initialized by InitializeAsync() below.
|
||||
#nullable disable
|
||||
private TestProjectSnapshotManager _projectManager;
|
||||
private SnapshotResolver _snapshotResolver;
|
||||
private DocumentVersionCache _documentVersionCache;
|
||||
private TestRazorProjectService _projectService;
|
||||
#nullable enable
|
||||
|
@ -42,7 +41,6 @@ public class RazorProjectServiceTest(ITestOutputHelper testOutput) : LanguageSer
|
|||
var optionsMonitor = TestRazorLSPOptionsMonitor.Create();
|
||||
var projectEngineFactoryProvider = new LspProjectEngineFactoryProvider(optionsMonitor);
|
||||
_projectManager = CreateProjectSnapshotManager(projectEngineFactoryProvider);
|
||||
_snapshotResolver = new SnapshotResolver(_projectManager, LoggerFactory);
|
||||
_documentVersionCache = new DocumentVersionCache(_projectManager);
|
||||
|
||||
var remoteTextLoaderFactoryMock = new StrictMock<RemoteTextLoaderFactory>();
|
||||
|
@ -52,7 +50,6 @@ public class RazorProjectServiceTest(ITestOutputHelper testOutput) : LanguageSer
|
|||
|
||||
_projectService = new TestRazorProjectService(
|
||||
remoteTextLoaderFactoryMock.Object,
|
||||
_snapshotResolver,
|
||||
_documentVersionCache,
|
||||
_projectManager,
|
||||
LoggerFactory);
|
||||
|
@ -681,8 +678,6 @@ public class RazorProjectServiceTest(ITestOutputHelper testOutput) : LanguageSer
|
|||
|
||||
await _projectService.AddDocumentToPotentialProjectsAsync(DocumentFilePath, DisposalToken);
|
||||
|
||||
var miscProject = _projectManager.GetMiscellaneousProject();
|
||||
|
||||
using var listener = _projectManager.ListenToNotifications();
|
||||
|
||||
// Act
|
||||
|
@ -863,8 +858,6 @@ public class RazorProjectServiceTest(ITestOutputHelper testOutput) : LanguageSer
|
|||
var ownerProjectKey = await _projectService.AddProjectAsync(
|
||||
ProjectFilePath, IntermediateOutputPath, RazorConfiguration.Default, RootNamespace, displayName: null, DisposalToken);
|
||||
|
||||
var ownerProject = _projectManager.GetLoadedProject(ownerProjectKey);
|
||||
|
||||
using var listener = _projectManager.ListenToNotifications();
|
||||
|
||||
// Act
|
||||
|
@ -880,8 +873,6 @@ public class RazorProjectServiceTest(ITestOutputHelper testOutput) : LanguageSer
|
|||
// Arrange
|
||||
const string DocumentFilePath = "document.cshtml";
|
||||
|
||||
var miscProject = _projectManager.GetMiscellaneousProject();
|
||||
|
||||
Assert.False(_projectManager.IsDocumentOpen(DocumentFilePath));
|
||||
|
||||
using var listener = _projectManager.ListenToNotifications();
|
||||
|
|
|
@ -611,10 +611,8 @@ public class RenameEndpointTest(ITestOutputHelper testOutput) : LanguageServerTe
|
|||
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var documentVersionCache = new DocumentVersionCache(projectManager);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, snapshotResolver, documentVersionCache, LoggerFactory);
|
||||
var documentContextFactory = new DocumentContextFactory(projectManager, documentVersionCache, LoggerFactory);
|
||||
|
||||
var remoteTextLoaderFactoryMock = new StrictMock<RemoteTextLoaderFactory>();
|
||||
remoteTextLoaderFactoryMock
|
||||
|
@ -631,7 +629,6 @@ public class RenameEndpointTest(ITestOutputHelper testOutput) : LanguageServerTe
|
|||
|
||||
var projectService = new TestRazorProjectService(
|
||||
remoteTextLoaderFactoryMock.Object,
|
||||
snapshotResolver,
|
||||
documentVersionCache,
|
||||
projectManager,
|
||||
LoggerFactory);
|
||||
|
|
|
@ -21,10 +21,10 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
// Arrange
|
||||
var documentFilePath = @"C:\path\to\document.cshtml";
|
||||
var normalizedFilePath = "C:/path/to/document.cshtml";
|
||||
var (snapshotResolver, _) = await CreateSnapshotResolverAsync(normalizedFilePath);
|
||||
var projectManager = await CreateProjectManagerAsync(normalizedFilePath);
|
||||
|
||||
// Act
|
||||
Assert.True(snapshotResolver.TryResolveDocumentInAnyProject(documentFilePath, out var document));
|
||||
Assert.True(projectManager.TryResolveDocumentInAnyProject(documentFilePath, Logger, out var document));
|
||||
|
||||
// Assert
|
||||
Assert.Equal(normalizedFilePath, document.FilePath);
|
||||
|
@ -37,7 +37,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
var documentFilePath = @"C:\path\to\document.cshtml";
|
||||
var normalizedFilePath = "C:/path/to/document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
await projectManager.UpdateAsync(updater =>
|
||||
{
|
||||
|
@ -50,7 +49,7 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
});
|
||||
|
||||
// Act
|
||||
Assert.True(snapshotResolver.TryResolveDocumentInAnyProject(documentFilePath, out var document));
|
||||
Assert.True(projectManager.TryResolveDocumentInAnyProject(documentFilePath, Logger, out var document));
|
||||
|
||||
// Assert
|
||||
Assert.Equal(normalizedFilePath, document.FilePath);
|
||||
|
@ -62,10 +61,9 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
// Arrange
|
||||
var documentFilePath = @"C:\path\to\document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.False(snapshotResolver.TryResolveDocumentInAnyProject(documentFilePath, out var document));
|
||||
Assert.False(projectManager.TryResolveDocumentInAnyProject(documentFilePath, Logger, out var document));
|
||||
|
||||
// Assert
|
||||
Assert.Null(document);
|
||||
|
@ -77,7 +75,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
// Arrange
|
||||
var documentFilePath = "C:/path/to/document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.False(projectManager.TryResolveAllProjects(documentFilePath, out _));
|
||||
|
@ -89,7 +86,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
// Arrange
|
||||
var documentFilePath = "C:/path/to/document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
// Act
|
||||
Assert.False(projectManager.TryResolveAllProjects(documentFilePath, out _));
|
||||
|
@ -100,7 +96,7 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
{
|
||||
// Arrange
|
||||
var documentFilePath = Path.Combine(MiscFilesHostProject.Instance.DirectoryPath, "document.cshtml");
|
||||
var (snapshotResolver, projectManager) = await CreateSnapshotResolverAsync(documentFilePath, addToMiscellaneous: true);
|
||||
var projectManager = await CreateProjectManagerAsync(documentFilePath, addToMiscellaneous: true);
|
||||
|
||||
// Act
|
||||
Assert.True(projectManager.TryResolveAllProjects(documentFilePath, out var projects));
|
||||
|
@ -116,7 +112,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
// Arrange
|
||||
var documentFilePath = "C:/path/to/document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
await projectManager.UpdateAsync(updater =>
|
||||
{
|
||||
|
@ -134,8 +129,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
var documentFilePath = "C:/path/to/document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var expectedProject = await projectManager.UpdateAsync(updater =>
|
||||
{
|
||||
var expectedProject = updater.CreateAndAddProject("C:/path/to/project.csproj");
|
||||
|
@ -161,7 +154,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
documentFilePath = FilePathNormalizer.Normalize(documentFilePath);
|
||||
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var miscProject = await projectManager.UpdateAsync(updater =>
|
||||
{
|
||||
|
@ -186,7 +178,6 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
// Arrange
|
||||
var documentFilePath = "c:/path/to/document.cshtml";
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
var ownerProject = await projectManager.UpdateAsync(updater =>
|
||||
{
|
||||
|
@ -232,12 +223,11 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
Assert.Equal(MiscFilesHostProject.Instance.FilePath, project.FilePath);
|
||||
}
|
||||
|
||||
private async Task<(ISnapshotResolver, TestProjectSnapshotManager)> CreateSnapshotResolverAsync(string filePath, bool addToMiscellaneous = false)
|
||||
private async Task<TestProjectSnapshotManager> CreateProjectManagerAsync(string filePath, bool addToMiscellaneous = false)
|
||||
{
|
||||
filePath = FilePathNormalizer.Normalize(filePath);
|
||||
|
||||
var projectManager = CreateProjectSnapshotManager();
|
||||
var snapshotResolver = new SnapshotResolver(projectManager, LoggerFactory);
|
||||
|
||||
if (addToMiscellaneous)
|
||||
{
|
||||
|
@ -259,7 +249,7 @@ public class SnapshotResolverTest(ITestOutputHelper testOutput) : LanguageServer
|
|||
});
|
||||
}
|
||||
|
||||
return (snapshotResolver, projectManager);
|
||||
return projectManager;
|
||||
}
|
||||
|
||||
private static void AssertSnapshotsEqual(IProjectSnapshot first, IProjectSnapshot second)
|
||||
|
|
|
@ -17,11 +17,10 @@ namespace Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem;
|
|||
|
||||
internal class TestRazorProjectService(
|
||||
RemoteTextLoaderFactory remoteTextLoaderFactory,
|
||||
ISnapshotResolver snapshotResolver,
|
||||
IDocumentVersionCache documentVersionCache,
|
||||
IProjectSnapshotManager projectManager,
|
||||
ILoggerFactory loggerFactory)
|
||||
: RazorProjectService(remoteTextLoaderFactory, snapshotResolver, documentVersionCache, projectManager, loggerFactory)
|
||||
: RazorProjectService(remoteTextLoaderFactory, documentVersionCache, projectManager, loggerFactory)
|
||||
{
|
||||
private readonly IProjectSnapshotManager _projectManager = projectManager;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче