Beispiel #1
0
        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);
        }
Beispiel #3
0
        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();
        }