public void ProjectState_WithWorkspaceProject_Changed() { // Arrange var original = new ProjectState(Workspace.Services, HostProject, WorkspaceProject) .AddHostDocument(Documents[2]) .AddHostDocument(Documents[1]); // Force init GC.KeepAlive(original.ProjectEngine); GC.KeepAlive(original.TagHelpers); var changed = WorkspaceProject.WithAssemblyName("Test1"); // Act var state = original.WithWorkspaceProject(changed); // Assert Assert.NotEqual(original.Version, state.Version); Assert.Same(changed, state.WorkspaceProject); Assert.Same(original.ProjectEngine, state.ProjectEngine); Assert.NotSame(original.TagHelpers, state.TagHelpers); Assert.NotSame(original.Documents[Documents[1].FilePath], state.Documents[Documents[1].FilePath]); Assert.NotSame(original.Documents[Documents[1].FilePath], state.Documents[Documents[1].FilePath]); }