public void StartAndAbortDoesNothing()
        {
            var counters = this.InitialiseCounters();
            var extension = new IntegrationPerformanceCountersExtension
                {
                    PerformanceCounters = counters
                };
            var serverMock = this.mocks.StrictMock<ICruiseServer>();
            var config = new ExtensionConfiguration();
            Expect.Call(() => serverMock.IntegrationCompleted += null).IgnoreArguments();
            Expect.Call(() => serverMock.IntegrationStarted += null).IgnoreArguments();

            this.mocks.ReplayAll();
            extension.Initialise(serverMock, config);
            extension.Start();
            extension.Abort();

            this.mocks.VerifyAll();
        }
        public void SuccessfulIntegrationUpdatesSuccessCounter()
        {
            var counters = this.InitialiseCounters();
            Expect.Call(() => counters.IncrementCounter(
                IntegrationPerformanceCountersExtension.CategoryName,
                IntegrationPerformanceCountersExtension.NumberCompletedCounter));
            Expect.Call(() => counters.IncrementCounter(
                IntegrationPerformanceCountersExtension.CategoryName,
                IntegrationPerformanceCountersExtension.NumberTotalCounter));
            Expect.Call(() => counters.IncrementCounter(
                Arg<string>.Is.Equal(IntegrationPerformanceCountersExtension.CategoryName),
                Arg<string>.Is.Equal(IntegrationPerformanceCountersExtension.AverageTimeCounter), 
                Arg<long>.Is.Anything));
            var extension = new IntegrationPerformanceCountersExtension
                {
                    PerformanceCounters = counters
                };
            var serverMock = this.mocks.StrictMock<ICruiseServer>();
            var config = new ExtensionConfiguration();
            var completedRaiser = Expect.Call(() => serverMock
                .IntegrationCompleted += null)
                .IgnoreArguments()
                .GetEventRaiser();
            var startRaiser = Expect
                .Call(() => serverMock.IntegrationStarted += null)
                .IgnoreArguments()
                .GetEventRaiser();
            var request = new IntegrationRequest(BuildCondition.ForceBuild, "Testing", null);

            this.mocks.ReplayAll();
            extension.Initialise(serverMock, config);
            startRaiser.Raise(serverMock, new IntegrationStartedEventArgs(request, "TestProject"));
            completedRaiser.Raise(serverMock, new IntegrationCompletedEventArgs(request, "TestProject", IntegrationStatus.Success));
            
            this.mocks.VerifyAll();
        }