Exemple #1
0
        public void ValidateReturnsFalseWhenNotStarted()
        {
            var metric = new ManualMetric(Name, Description);

            metric.Validate(out var message).Should().BeFalse();
            message.Should().Contain("was not started and stopped");
        }
Exemple #2
0
        public void DurationDoesNotHaveValueAtFirstStart()
        {
            var metric = new ManualMetric(Name, Description);

            metric.Start();
            metric.Duration.HasValue.Should().BeFalse();
        }
Exemple #3
0
        public void ManualMetric()
        {
            var metric = new ManualMetric(MetricName);

            metric.Start();
            metric.Stop();
            metric.Validate(out _);
        }
Exemple #4
0
        public void StopThrowsWhenNotStarted()
        {
            var    metric   = new ManualMetric(Name, Description);
            Action validate = () => metric.Stop();

            validate.Should().Throw <InvalidOperationException>()
            .Which.Message.Should().Be("The manual timing has not been started.");
        }
Exemple #5
0
        public void ValidateReturnsTrueWhenStartedAndStopped()
        {
            var metric = new ManualMetric(Name, Description);

            metric.Start();
            metric.Stop();
            metric.Validate(out _).Should().BeTrue();
        }
Exemple #6
0
        public void InitialStateSetFromConstructor(string name, string description)
        {
            var metric = new ManualMetric(name, description);

            metric.Name.Should().Be(name);
            metric.Description.Should().Be(description);
            metric.Duration.HasValue.Should().BeFalse();
        }
Exemple #7
0
        public void DurationHasValueOnceStopped()
        {
            var metric = new ManualMetric(Name, Description);

            metric.Start();
            metric.Stop();
            metric.Duration.HasValue.Should().BeTrue();
        }
Exemple #8
0
        public void IsRunningUpdatedWhenStartingAndStopping()
        {
            var metric = new ManualMetric(Name, Description);

            metric.IsRunning.Should().BeFalse();

            metric.Start();
            metric.IsRunning.Should().BeTrue();

            metric.Stop();
            metric.IsRunning.Should().BeFalse();
        }
Exemple #9
0
        public Task OnResponseStarting()
        {
            _requestTimingOptions.IncludeCustomMetrics = IncludeCustomMetrics;
            _serverTimingOptions.ValidateMetrics       = ValidateMetrics;
            _requestTimingOptions.IncludeDescriptions  = IncludeDescriptions;

            _httpContext.Response.Headers.Clear();
            var totalMetric = new ManualMetric(_serverTimingOptions.TotalMetricName);

            totalMetric.Start();

            return(_middleware.OnResponseStarting(_httpContext, totalMetric, _serverTiming, _requestTimingOptions));
        }
Exemple #10
0
        public async Task CanStartAndStoppedMultipleTimes()
        {
            var metric = new ManualMetric(Name, Description);

            const int iterations = 10;
            var       durations  = new List <double?>(iterations);

            for (var i = 0; i < iterations; i++)
            {
                metric.Start();
                await Task.Delay(1);

                metric.Stop();
                durations.Add(metric.Duration);
            }

            durations.Should().NotContainNulls().And.BeInAscendingOrder();
        }
Exemple #11
0
        public void DurationDoesNotHaveInitialValue()
        {
            var metric = new ManualMetric(Name, Description);

            metric.Duration.HasValue.Should().BeFalse();
        }