public void QuickPulseTopCpuCollectorSetsInitializationStatusCorrectlyWhenUnknownExceptionIsThrown() { // ARRANGE var processProvider = new QuickPulseProcessProviderMock { AlwaysThrow = new Exception() }; var timeProvider = new ClockMock(); var collector = new QuickPulseTopCpuCollector(timeProvider, processProvider); // ACT collector.Initialize(); // ASSERT Assert.IsTrue(collector.InitializationFailed); Assert.IsFalse(collector.AccessDenied); }
public void QuickPulseTopCpuCollectorHandlesExceptionFromProcessProvider() { // ARRANGE var processProvider = new QuickPulseProcessProviderMock() { AlwaysThrow = new Exception() }; var timeProvider = new ClockMock(); var collector = new QuickPulseTopCpuCollector(timeProvider, processProvider); // ACT var topProcesses = collector.GetTopProcessesByCpu(3); // ASSERT Assert.AreEqual(0, topProcesses.Count()); }
public void QuickPulseTopCpuCollectorReturnsNothingWhenCalledForTheFirstTime() { // ARRANGE var processProvider = new QuickPulseProcessProviderMock(); processProvider.Processes = new List <QuickPulseProcess>() { new QuickPulseProcess("Process1", TimeSpan.FromSeconds(50)), new QuickPulseProcess("Process2", TimeSpan.FromSeconds(100)), new QuickPulseProcess("Process3", TimeSpan.FromSeconds(75)), new QuickPulseProcess("Process4", TimeSpan.FromSeconds(25)), new QuickPulseProcess("Process5", TimeSpan.FromSeconds(125)), }; var timeProvider = new ClockMock(); var collector = new QuickPulseTopCpuCollector(timeProvider, processProvider); // ACT var topProcesses = collector.GetTopProcessesByCpu(3).ToList(); // ASSERT Assert.AreEqual(0, topProcesses.Count); }
public void QuickPulseTopCpuCollectorCleansUpStateWhenProcessesGoAway() { // ARRANGE var processProvider = new QuickPulseProcessProviderMock(); var baseProcessorTime = TimeSpan.FromSeconds(100); processProvider.Processes = new List <QuickPulseProcess>() { new QuickPulseProcess("Process1", baseProcessorTime), new QuickPulseProcess("Process2", baseProcessorTime), new QuickPulseProcess("Process3", baseProcessorTime), new QuickPulseProcess("Process4", baseProcessorTime), new QuickPulseProcess("Process5", baseProcessorTime), }; var timeProvider = new ClockMock(); var collector = new QuickPulseTopCpuCollector(timeProvider, processProvider); var processDictionary = QuickPulseTestHelper.GetPrivateField(collector, "processObservations") as Dictionary <string, TimeSpan>; // ACT collector.GetTopProcessesByCpu(3); int itemCount1 = processDictionary.Count; timeProvider.FastForward(TimeSpan.FromSeconds(1)); processProvider.Processes = new List <QuickPulseProcess>() { new QuickPulseProcess("Process1", baseProcessorTime) }; collector.GetTopProcessesByCpu(3); int itemCount3 = processDictionary.Count; // ASSERT Assert.AreEqual(5, itemCount1); Assert.AreEqual(1, itemCount3); }