public async Task StartListening_AlreadyListening_DoesNothing() { // Arrange var callCount = 0; var fileChangeService = new Mock <IVsAsyncFileChangeEx>(MockBehavior.Strict); fileChangeService .Setup(f => f.AdviseFileChangeAsync(It.IsAny <string>(), It.IsAny <_VSFILECHANGEFLAGS>(), It.IsAny <IVsFreeThreadedFileChangeEvents2>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <uint>(123)) .Callback(() => callCount++); var tracker = new VisualStudioFileChangeTracker(TestProjectData.SomeProjectImportFile.FilePath, ErrorReporter, fileChangeService.Object, Dispatcher, JoinableTaskFactory.Context); tracker.StartListening(); // Act tracker.StartListening(); await tracker._fileChangeAdviseTask; // Assert Assert.Equal(1, callCount); }
public void StartListening_AlreadyListening_DoesNothing() { // Arrange uint cookie = 100; var callCount = 0; var fileChangeService = new Mock <IVsFileChangeEx>(); fileChangeService .Setup(f => f.AdviseFileChange(It.IsAny <string>(), It.IsAny <uint>(), It.IsAny <IVsFileChangeEvents>(), out cookie)) .Returns(VSConstants.S_OK) .Callback(() => callCount++); var tracker = new VisualStudioFileChangeTracker(TestProjectData.SomeProjectImportFile.FilePath, Dispatcher, ErrorReporter, fileChangeService.Object); tracker.StartListening(); // Act tracker.StartListening(); // Assert Assert.Equal(1, callCount); }
public async Task StartListening_AdvisesForFileChange() { // Arrange var fileChangeService = new Mock <IVsAsyncFileChangeEx>(MockBehavior.Strict); fileChangeService .Setup(f => f.AdviseFileChangeAsync(It.IsAny <string>(), It.IsAny <_VSFILECHANGEFLAGS>(), It.IsAny <IVsFreeThreadedFileChangeEvents2>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult <uint>(123)) .Verifiable(); var tracker = new VisualStudioFileChangeTracker(TestProjectData.SomeProjectImportFile.FilePath, Dispatcher, ErrorReporter, fileChangeService.Object, JoinableTaskFactory); // Act tracker.StartListening(); await tracker._fileChangeAdviseTask; // Assert fileChangeService.Verify(); }
public void StartListening_AdvisesForFileChange() { // Arrange uint cookie; var fileChangeService = new Mock <IVsFileChangeEx>(); fileChangeService .Setup(f => f.AdviseFileChange(It.IsAny <string>(), It.IsAny <uint>(), It.IsAny <IVsFileChangeEvents>(), out cookie)) .Returns(VSConstants.S_OK) .Verifiable(); var tracker = new VisualStudioFileChangeTracker(TestProjectData.SomeProjectImportFile.FilePath, Dispatcher, ErrorReporter, fileChangeService.Object); // Act tracker.StartListening(); // Assert fileChangeService.Verify(); }
public void StopListening_UnadvisesForFileChange() { // Arrange uint cookie = 100; var fileChangeService = new Mock <IVsFileChangeEx>(MockBehavior.Strict); fileChangeService .Setup(f => f.AdviseFileChange(It.IsAny <string>(), It.IsAny <uint>(), It.IsAny <IVsFileChangeEvents>(), out cookie)) .Returns(VSConstants.S_OK) .Verifiable(); fileChangeService .Setup(f => f.UnadviseFileChange(cookie)) .Returns(VSConstants.S_OK) .Verifiable(); var tracker = new VisualStudioFileChangeTracker("C:/_ViewImports.cshtml", Dispatcher, ErrorReporter, fileChangeService.Object); tracker.StartListening(); // Start listening for changes. // Act tracker.StopListening(); // Assert fileChangeService.Verify(); }