private static DefaultRazorEditorFactoryService CreateFactoryService( VisualStudioDocumentTracker documentTracker = null, VisualStudioRazorParser parser = null, BraceSmartIndenter smartIndenter = null) { documentTracker ??= Mock.Of <VisualStudioDocumentTracker>(MockBehavior.Strict); parser ??= Mock.Of <VisualStudioRazorParser>(MockBehavior.Strict); smartIndenter ??= Mock.Of <BraceSmartIndenter>(MockBehavior.Strict); var documentTrackerFactory = Mock.Of <VisualStudioDocumentTrackerFactory>(f => f.Create(It.IsAny <ITextBuffer>()) == documentTracker, MockBehavior.Strict); var parserFactory = Mock.Of <VisualStudioRazorParserFactory>(f => f.Create(It.IsAny <VisualStudioDocumentTracker>()) == parser, MockBehavior.Strict); var smartIndenterFactory = Mock.Of <BraceSmartIndenterFactory>(f => f.Create(It.IsAny <VisualStudioDocumentTracker>()) == smartIndenter, MockBehavior.Strict); var services = TestServices.Create(new ILanguageService[] { documentTrackerFactory, parserFactory, smartIndenterFactory }); Workspace workspace = TestWorkspace.Create(services); var workspaceAccessor = new Mock <VisualStudioWorkspaceAccessor>(MockBehavior.Strict); workspaceAccessor.Setup(p => p.TryGetWorkspace(It.IsAny <ITextBuffer>(), out workspace)) .Returns(true); var factoryService = new DefaultRazorEditorFactoryService(workspaceAccessor.Object); return(factoryService); }
private void EnsureInitialized() { if (_initialized) { return; } var workspaceServices = new List <IWorkspaceService>() { new TestProjectSnapshotProjectEngineFactory() { Configure = ConfigureProjectEngine, }, }; ConfigureWorkspaceServices(workspaceServices); var languageServices = new List <ILanguageService>(); ConfigureLanguageServices(languageServices); _hostServices = TestServices.Create(workspaceServices, languageServices); _workspace = TestWorkspace.Create(_hostServices, ConfigureWorkspace); _initialized = true; }
public DocumentStateTest() { TagHelperResolver = new TestTagHelperResolver(); HostServices = TestServices.Create( new IWorkspaceService[] { new TestProjectSnapshotProjectEngineFactory(), }, new ILanguageService[] { TagHelperResolver, }); HostProject = new HostProject("c:\\MyProject\\Test.csproj", FallbackRazorConfiguration.MVC_2_0); HostProjectWithConfigurationChange = new HostProject("c:\\MyProject\\Test.csproj", FallbackRazorConfiguration.MVC_1_0); Workspace = TestWorkspace.Create(HostServices); var projectId = ProjectId.CreateNewId("Test"); var solution = Workspace.CurrentSolution.AddProject(ProjectInfo.Create( projectId, VersionStamp.Default, "Test", "Test", LanguageNames.CSharp, "c:\\MyProject\\Test.csproj")); WorkspaceProject = solution.GetProject(projectId); SomeTagHelpers = new List <TagHelperDescriptor>(); SomeTagHelpers.Add(TagHelperDescriptorBuilder.Create("Test1", "TestAssembly").Build()); Document = new HostDocument("c:\\MyProject\\File.cshtml", "File.cshtml"); }
public DefaultProjectWorkspaceStateGeneratorTest() { var tagHelperResolver = new TestTagHelperResolver(); tagHelperResolver.TagHelpers.Add(TagHelperDescriptorBuilder.Create("ResolvableTagHelper", "TestAssembly").Build()); ResolvableTagHelpers = tagHelperResolver.TagHelpers; var workspaceServices = new List <IWorkspaceService>() { tagHelperResolver }; var testServices = TestServices.Create(workspaceServices, Enumerable.Empty <ILanguageService>()); Workspace = TestWorkspace.Create(testServices); var projectId = ProjectId.CreateNewId("Test"); var solution = Workspace.CurrentSolution.AddProject(ProjectInfo.Create( projectId, VersionStamp.Default, "Test", "Test", LanguageNames.CSharp, TestProjectData.SomeProject.FilePath)); WorkspaceProject = solution.GetProject(projectId); ProjectSnapshot = new DefaultProjectSnapshot(ProjectState.Create(Workspace.Services, TestProjectData.SomeProject)); ProjectWorkspaceStateWithTagHelpers = new ProjectWorkspaceState(new[] { TagHelperDescriptorBuilder.Create("TestTagHelper", "TestAssembly").Build(), }, default); }
public override AdhocWorkspace Create(IEnumerable <IWorkspaceService> workspaceServices) { var services = TestServices.Create(workspaceServices, Enumerable.Empty <ILanguageService>()); var workspace = TestWorkspace.Create(services); return(workspace); }
public DefaultVisualStudioDocumentTrackerTest() { RazorCoreContentType = Mock.Of <IContentType>(c => c.IsOfType(RazorLanguage.ContentType) == true); TextBuffer = Mock.Of <ITextBuffer>(b => b.ContentType == RazorCoreContentType); FilePath = "C:/Some/Path/TestDocumentTracker.cshtml"; ProjectPath = "C:/Some/Path/TestProject.csproj"; ImportDocumentManager = Mock.Of <ImportDocumentManager>(); WorkspaceEditorSettings = new DefaultWorkspaceEditorSettings(Mock.Of <ForegroundDispatcher>(), Mock.Of <EditorSettingsManager>()); TagHelperResolver = new TestTagHelperResolver(); SomeTagHelpers = new List <TagHelperDescriptor>() { TagHelperDescriptorBuilder.Create("test", "test").Build(), }; HostServices = TestServices.Create( new IWorkspaceService[] { }, new ILanguageService[] { TagHelperResolver, }); Workspace = TestWorkspace.Create(HostServices, w => { WorkspaceProject = w.AddProject(ProjectInfo.Create( ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: ProjectPath)); }); ProjectManager = new TestProjectSnapshotManager(Dispatcher, Workspace) { AllowNotifyListeners = true }; HostProject = new HostProject(ProjectPath, FallbackRazorConfiguration.MVC_2_1); OtherHostProject = new HostProject(ProjectPath, FallbackRazorConfiguration.MVC_2_0); DocumentTracker = new DefaultVisualStudioDocumentTracker( Dispatcher, FilePath, ProjectPath, ProjectManager, WorkspaceEditorSettings, Workspace, TextBuffer, ImportDocumentManager); }
public ProjectStateTest() { TagHelperResolver = new TestTagHelperResolver(); HostServices = TestServices.Create( new IWorkspaceService[] { new TestProjectSnapshotProjectEngineFactory(), }, new ILanguageService[] { TagHelperResolver, }); HostProject = new HostProject("c:\\MyProject\\Test.csproj", FallbackRazorConfiguration.MVC_2_0); HostProjectWithConfigurationChange = new HostProject("c:\\MyProject\\Test.csproj", FallbackRazorConfiguration.MVC_1_0); Workspace = TestWorkspace.Create(HostServices); var projectId = ProjectId.CreateNewId("Test"); var solution = Workspace.CurrentSolution.AddProject(ProjectInfo.Create( projectId, VersionStamp.Default, "Test", "Test", LanguageNames.CSharp, "c:\\MyProject\\Test.csproj")); WorkspaceProject = solution.GetProject(projectId); SomeTagHelpers = new List <TagHelperDescriptor>(); SomeTagHelpers.Add(TagHelperDescriptorBuilder.Create("Test1", "TestAssembly").Build()); Documents = new HostDocument[] { new HostDocument("c:\\MyProject\\File.cshtml", "File.cshtml"), new HostDocument("c:\\MyProject\\Index.cshtml", "Index.cshtml"), // linked file new HostDocument("c:\\SomeOtherProject\\Index.cshtml", "Pages\\Index.cshtml"), }; Text = SourceText.From("Hello, world!"); TextLoader = () => Task.FromResult(TextAndVersion.Create(Text, VersionStamp.Create())); }
internal DefaultProjectSnapshotManager CreateProjectSnapshotManager() { var services = TestServices.Create( new IWorkspaceService[] { TagHelperResolver, new StaticProjectSnapshotProjectEngineFactory(), }, new ILanguageService[] { }); return(new DefaultProjectSnapshotManager( new TestForegroundDispatcher(), new TestErrorReporter(), Array.Empty <ProjectSnapshotChangeTrigger>(), new AdhocWorkspace(services))); }
internal DefaultProjectSnapshotManager CreateProjectSnapshotManager() { var services = TestServices.Create( new IWorkspaceService[] { TagHelperResolver, new StaticProjectSnapshotProjectEngineFactory(), }, Array.Empty <ILanguageService>()); return(new DefaultProjectSnapshotManager( new TestProjectSnapshotManagerDispatcher(), new TestErrorReporter(), Array.Empty <ProjectSnapshotChangeTrigger>(), #pragma warning disable CA2000 // Dispose objects before losing scope new AdhocWorkspace(services))); #pragma warning restore CA2000 // Dispose objects before losing scope }
public DefaultDocumentSnapshotTest() { var services = TestServices.Create( new[] { new TestProjectSnapshotProjectEngineFactory() }, new[] { new TestTagHelperResolver() }); Workspace = TestWorkspace.Create(services); var hostProject = new HostProject("C:/some/path/project.csproj", RazorConfiguration.Default); var projectState = ProjectState.Create(Workspace.Services, hostProject); var project = new DefaultProjectSnapshot(projectState); HostDocument = new HostDocument("C:/some/path/file.cshtml", "C:/some/path/file.cshtml"); SourceText = Text.SourceText.From("<p>Hello World</p>"); Version = VersionStamp.Default.GetNewerVersion(); var textAndVersion = TextAndVersion.Create(SourceText, Version); var documentState = DocumentState.Create(Workspace.Services, HostDocument, () => Task.FromResult(textAndVersion)); Document = new DefaultDocumentSnapshot(project, documentState); }
public DefaultProjectSnapshotManagerTest() { TagHelperResolver = new TestTagHelperResolver(); HostServices = TestServices.Create( new IWorkspaceService[] { new TestProjectSnapshotProjectEngineFactory(), }, new ILanguageService[] { TagHelperResolver, }); Documents = new HostDocument[] { new HostDocument("c:\\MyProject\\File.cshtml", "File.cshtml"), new HostDocument("c:\\MyProject\\Index.cshtml", "Index.cshtml"), // linked file new HostDocument("c:\\SomeOtherProject\\Index.cshtml", "Pages\\Index.cshtml"), }; HostProject = new HostProject("c:\\MyProject\\Test.csproj", FallbackRazorConfiguration.MVC_2_0); HostProjectWithConfigurationChange = new HostProject("c:\\MyProject\\Test.csproj", FallbackRazorConfiguration.MVC_1_0); Workspace = TestWorkspace.Create(HostServices); ProjectManager = new TestProjectSnapshotManager(Dispatcher, Enumerable.Empty <ProjectSnapshotChangeTrigger>(), Workspace); var projectId = ProjectId.CreateNewId("Test"); var solution = Workspace.CurrentSolution.AddProject(ProjectInfo.Create( projectId, VersionStamp.Default, "Test", "Test", LanguageNames.CSharp, "c:\\MyProject\\Test.csproj")); WorkspaceProject = solution.GetProject(projectId); var vbProjectId = ProjectId.CreateNewId("VB"); solution = solution.AddProject(ProjectInfo.Create( vbProjectId, VersionStamp.Default, "VB", "VB", LanguageNames.VisualBasic, "VB.vbproj")); VBWorkspaceProject = solution.GetProject(vbProjectId); var projectWithoutFilePathId = ProjectId.CreateNewId("NoFile"); solution = solution.AddProject(ProjectInfo.Create( projectWithoutFilePathId, VersionStamp.Default, "NoFile", "NoFile", LanguageNames.CSharp)); WorkspaceProjectWithoutFilePath = solution.GetProject(projectWithoutFilePathId); // Approximates a project with multi-targeting var projectIdWithDifferentTfm = ProjectId.CreateNewId("TestWithDifferentTfm"); solution = Workspace.CurrentSolution.AddProject(ProjectInfo.Create( projectIdWithDifferentTfm, VersionStamp.Default, "Test (Different TFM)", "Test", LanguageNames.CSharp, "c:\\MyProject\\Test.csproj")); WorkspaceProjectWithDifferentTfm = solution.GetProject(projectIdWithDifferentTfm); SomeTagHelpers = TagHelperResolver.TagHelpers; SomeTagHelpers.Add(TagHelperDescriptorBuilder.Create("Test1", "TestAssembly").Build()); SourceText = SourceText.From("Hello world"); }