private IHealthCheckResult BuildHealthCheckAndSetExpectations(bool categoryFound, bool[] counterExistence) { IPerformanceCounterInquisitor inquisitor = m_MockRepository.StrictMock <IPerformanceCounterInquisitor>(); IHealthCheck healthCheck = PerformanceCounterRegistrationHealthCheck.Create(inquisitor); using (m_MockRepository.Record()) { Expect.Call(inquisitor.CheckCategoryExists(PerformanceCounterRegistrar.CategoryName)).Return( categoryFound); Debug.Assert(counterExistence.Length == m_PerformanceCounterDefinitions.Count); if (categoryFound) { for (int index = 0; index < m_PerformanceCounterDefinitions.Count; index++) { Expect.Call(inquisitor.CheckCounterExists(m_PerformanceCounterDefinitions[index].CounterName)). Return(counterExistence[index]); } } m_MockRepository.ReplayAll(); } return(healthCheck.Execute()); }
/// <summary> /// Executes the Health Check implementation. /// </summary> /// <returns> /// An <see cref = "IHealthCheckResult" /> instance that specifies the outcome of the Health Check. /// </returns> public IHealthCheckResult Execute() { IHealthCheckResult result; List <string> missingCategories = new List <string>(); if (m_Inquisitor.CheckCategoryExists(PerformanceCounterRegistrar.CategoryName)) { missingCategories.AddRange(from counterCreationData in PerformanceCounterRegistrar.CounterDefinitions where !m_Inquisitor.CheckCounterExists(counterCreationData.CounterName) select counterCreationData.CounterName); if (missingCategories.Count == 0) { result = HealthCheckResult.Create(true, MessageResources.PERFORMANCE_CATEGORY_AND_COUNTERS_DEFINED); } else { string message = BuildMessage(missingCategories); result = HealthCheckResult.Create( false, string.Format(CultureInfo.CurrentUICulture, MessageResources.PERFORMANCE_CATEGORY_DEFINED_MISSING_COUNTERS, message)); } } else { result = HealthCheckResult.Create(false, MessageResources.PERFORMANCE_CATEGORY_NOT_DEFINED); } return(result); }
public void CountersCreatedAndCleanedUp() { IPerformanceCounterInquisitor inquisitor = PerformanceCounterInquisitor.Create(); using (PerformanceCounterRegistrarDisposable.Create()) { Assert.IsTrue(inquisitor.CheckCategoryExists(PerformanceCounterRegistrar.CategoryName)); foreach (CounterCreationData counterCreationData in PerformanceCounterRegistrar.CounterDefinitions) { Assert.IsTrue(inquisitor.CheckCounterExists(counterCreationData.CounterName)); } } Assert.IsFalse(inquisitor.CheckCategoryExists(PerformanceCounterRegistrar.CategoryName)); // The category contains the counters so when the category does not exist you can be assured the categories do not exist. }