public void LifeCycle() { // Arrange var progressHandler = new StatusBarDownloadProgressHandler(dummyStatusBar, dummyInstaller, logger); // 1. Initial request dummyInstaller.SimulateProgressChanged(new InstallationProgressChangedEventArgs(0, 1000)); dummyStatusBar.CheckLastCallWasSetupCall(0, 1000); // 2. Progress updates dummyInstaller.SimulateProgressChanged(new InstallationProgressChangedEventArgs(100, 1000)); dummyStatusBar.CheckLastCallWasInProgressCall(100, 1000); // 3. Cleanup - reset the statusbar dummyInstaller.SimulateInstallFinished(new System.ComponentModel.AsyncCompletedEventArgs(null, false, null)); dummyStatusBar.CheckLastCallWasCleanup(); dummyStatusBar.ProgressCallCount.Should().Be(3); dummyInstaller.AssertNoEventHandlersRegistered(); // 4. Dispose progressHandler.Dispose(); dummyStatusBar.ProgressCallCount.Should().Be(3); // progress should not be called since already cleaned up dummyInstaller.AssertNoEventHandlersRegistered(); }
public void RequestAnalysis_NotStarted_StartThenRequestAnalysis() { // Arrange dummyDaemon.SupportedLanguages = new[] { AnalysisLanguage.Javascript }; dummyInstaller.IsInstalledReturnValue = true; dummyDaemon.IsRunning = false; // 1. Make the request analyzer.ExecuteAnalysis("path", "charset", new[] { AnalysisLanguage.Javascript }, null, null, null, CancellationToken.None); dummyDaemon.StartCallCount.Should().Be(1); dummyDaemon.RequestAnalysisCallCount.Should().Be(0); // should be waiting for the daemon to be ready // 2. Simulate daemon being ready dummyDaemon.SimulateDaemonReady(null); dummyDaemon.RequestAnalysisCallCount.Should().Be(1); CheckTelemetryManagerCallCount("js", 1); // Sanity check of all of the call counts dummyInstaller.InstallCallCount.Should().Be(0); dummyDaemon.StartCallCount.Should().Be(1); dummyDaemon.RequestAnalysisCallCount.Should().Be(1); // 3. Check the event handlers have been unsubscribed dummyDaemon.SimulateDaemonReady(null); dummyInstaller.SimulateInstallFinished(null); // Call counts should not have changed dummyInstaller.InstallCallCount.Should().Be(0); dummyDaemon.StartCallCount.Should().Be(1); dummyDaemon.RequestAnalysisCallCount.Should().Be(1); CheckTelemetryManagerTotalCallCount(1); }