// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.AspNetCore.Razor.Language; using Microsoft.CodeAnalysis.Host; using Moq; using Xunit; namespace Microsoft.CodeAnalysis.Razor.ProjectSystem { public class DocumentStateTest { 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(); SomeTagHelpers.Add(TagHelperDescriptorBuilder.Create("Test1", "TestAssembly").Build()); Document = new HostDocument("c:\\MyProject\\File.cshtml", "File.cshtml"); } private HostDocument Document { get; } private HostProject HostProject { get; } private HostProject HostProjectWithConfigurationChange { get; } private Project WorkspaceProject { get; } private TestTagHelperResolver TagHelperResolver { get; } private HostServices HostServices { get; } private Workspace Workspace { get; } private List SomeTagHelpers { get; } [Fact] public void DocumentState_ConstructedNew() { // Arrange // Act var state = new DocumentState(Workspace.Services, Document); // Assert Assert.NotEqual(VersionStamp.Default, state.Version); } [Fact] // There's no magic in the constructor. public void ProjectState_ConstructedFromCopy() { // Arrange var original = new DocumentState(Workspace.Services, Document); // Act var state = new DocumentState(original, ProjectDifference.ConfigurationChanged); // Assert Assert.NotEqual(original.Version, state.Version); } } }