Example #1
0
        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());
        }
Example #2
0
        /// <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.
        }