public void StartThrowsWhenAlreadyStarted() { var metric = new ManualMetric(Name, Description); metric.Start(); Action validate = () => metric.Start(); validate.Should().Throw <InvalidOperationException>() .Which.Message.Should().Be("The manual timing has already been started."); }
public void DurationDoesNotHaveValueAtFirstStart() { var metric = new ManualMetric(Name, Description); metric.Start(); metric.Duration.HasValue.Should().BeFalse(); }
public void ManualMetric() { var metric = new ManualMetric(MetricName); metric.Start(); metric.Stop(); metric.Validate(out _); }
public void ValidateReturnsTrueWhenStartedAndStopped() { var metric = new ManualMetric(Name, Description); metric.Start(); metric.Stop(); metric.Validate(out _).Should().BeTrue(); }
public void ValidateReturnsFalseWhenNotStopped() { var metric = new ManualMetric(Name, Description); metric.Start(); metric.Validate(out var message).Should().BeFalse(); message.Should().Contain("was started and not stopped"); }
public void DurationHasValueOnceStopped() { var metric = new ManualMetric(Name, Description); metric.Start(); metric.Stop(); metric.Duration.HasValue.Should().BeTrue(); }
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(); }
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)); }
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(); }