public void ProjectState_WithProjectWorkspaceState_CallsWorkspaceProjectChangeOnDocumentState() { // Arrange var callCount = 0; var documents = ImmutableDictionary.CreateBuilder <string, DocumentState>(FilePathComparer.Instance); documents[Documents[1].FilePath] = TestDocumentState.Create(Workspace.Services, Documents[1], onProjectWorkspaceStateChange: () => callCount++); documents[Documents[2].FilePath] = TestDocumentState.Create(Workspace.Services, Documents[2], onProjectWorkspaceStateChange: () => callCount++); var original = ProjectState.Create(Workspace.Services, HostProject, ProjectWorkspaceState); original.Documents = documents.ToImmutable(); var changed = new ProjectWorkspaceState(Array.Empty <TagHelperDescriptor>(), default); // Act var state = original.WithProjectWorkspaceState(changed); // Assert Assert.NotEqual(original.Version, state.Version); Assert.Equal(2, callCount); }
public void ProjectState_WithWorkspaceProject_CallsWorkspaceProjectChangeOnDocumentState() { // Arrange var callCount = 0; var documents = new Dictionary <string, DocumentState>(); documents[Documents[1].FilePath] = TestDocumentState.Create(Workspace.Services, Documents[1], onWorkspaceProjectChange: () => callCount++); documents[Documents[2].FilePath] = TestDocumentState.Create(Workspace.Services, Documents[2], onWorkspaceProjectChange: () => callCount++); var original = ProjectState.Create(Workspace.Services, HostProject, WorkspaceProject); original.Documents = documents; var changed = WorkspaceProject.WithAssemblyName("Test1"); // Act var state = original.WithWorkspaceProject(changed); // Assert Assert.NotEqual(original.Version, state.Version); Assert.Equal(2, callCount); }