public async Task ProjectManager_Changed_ProjectRemoved_AfterEnqueuedPublish() { // Arrange var attemptedToSerialize = false; var projectSnapshot = CreateProjectSnapshot("/path/to/project.csproj"); var expectedPublishFilePath = "/path/to/obj/bin/Debug/project.razor.json"; var publisher = new TestProjectChangePublisher( LoggerFactory, onSerializeToFile: (snapshot, publishFilePath) => attemptedToSerialize = true) { EnqueueDelay = 10 }; publisher.SetPublishFilePath(projectSnapshot.FilePath, expectedPublishFilePath); publisher.EnqueuePublish(projectSnapshot); var args = OmniSharpProjectChangeEventArgs.CreateTestInstance(projectSnapshot, newer: null, documentFilePath: null, OmniSharpProjectChangeKind.ProjectRemoved); // Act publisher.ProjectManager_Changed(null, args); // Assert await Task.Delay(publisher.EnqueueDelay * 3); Assert.False(attemptedToSerialize); }
public async Task ProjectManager_Changed_EnqueuesPublish(OmniSharpProjectChangeKind changeKind) { // Arrange var serializationSuccessful = false; var projectSnapshot = CreateProjectSnapshot("/path/to/project.csproj"); var expectedPublishFilePath = "/path/to/obj/bin/Debug/project.razor.json"; var publisher = new TestProjectChangePublisher( LoggerFactory, onSerializeToFile: (snapshot, publishFilePath) => { Assert.Same(projectSnapshot, snapshot); Assert.Equal(expectedPublishFilePath, publishFilePath); serializationSuccessful = true; }) { EnqueueDelay = 10 }; publisher.SetPublishFilePath(projectSnapshot.FilePath, expectedPublishFilePath); var args = OmniSharpProjectChangeEventArgs.CreateTestInstance(projectSnapshot, projectSnapshot, documentFilePath: null, changeKind); // Act publisher.ProjectManager_Changed(null, args); // Assert var kvp = Assert.Single(publisher._deferredPublishTasks); await kvp.Value; Assert.True(serializationSuccessful); }