public async Task ReportMetricAsync_InputDoesNotContainMeasuredMetric_ThrowsException() { // Arrange var metricName = BogusGenerator.Name.FirstName(); var metricDescription = BogusGenerator.Lorem.Sentence(); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var metricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); // Act & Assert // ReSharper disable once ExpressionIsAlwaysNull await Assert.ThrowsAsync <ArgumentNullException>(() => metricSink.ReportMetricAsync(metricName, metricDescription, null)); }
public async Task ReportMetricAsync_InputDoesNotContainMetricName_ThrowsException(string metricName) { // Arrange var metricDescription = BogusGenerator.Lorem.Sentence(); var metricValue = BogusGenerator.Random.Double(); var scrapeResult = ScrapeResultGenerator.Generate(metricValue); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var metricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); // Act & Assert // ReSharper disable once ExpressionIsAlwaysNull await Assert.ThrowsAsync <ArgumentException>(() => metricSink.ReportMetricAsync(metricName, metricDescription, scrapeResult)); }
public async Task ReportMetricAsync_InputDoesNotContainMetricDescription_Succeeds(string metricDescription) { // Arrange var metricName = _bogus.Name.FirstName(); var metricValue = _bogus.Random.Double(); var measuredMetric = MeasuredMetric.CreateWithoutDimension(metricValue); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var metricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); // Act & Assert // ReSharper disable once ExpressionIsAlwaysNull await metricSink.ReportMetricAsync(metricName, metricDescription, measuredMetric); }
public async Task ReportMetricAsync_InputDoesNotContainMetricName_ThrowsException(string metricName) { // Arrange var metricDescription = _bogus.Lorem.Sentence(); var metricValue = _bogus.Random.Double(); var measuredMetric = MeasuredMetric.CreateWithoutDimension(metricValue); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var metricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); // Act & Assert // ReSharper disable once ExpressionIsAlwaysNull await Assert.ThrowsAsync <ArgumentException>(() => metricSink.ReportMetricAsync(metricName, metricDescription, measuredMetric)); }
public async Task ReportMetricAsync_GetsValidInputWithMetricValue_SuccessfullyWritesMetric() { // Arrange var metricName = _bogus.Name.FirstName(); var metricDescription = _bogus.Lorem.Sentence(); var metricValue = _bogus.Random.Double(); var measuredMetric = MeasuredMetric.CreateWithoutDimension(metricValue); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var metricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); // Act await metricSink.ReportMetricAsync(metricName, metricDescription, measuredMetric); // Assert statsDPublisherMock.Verify(mock => mock.Gauge(metricValue, metricName), Times.Once()); }
public async Task ReportMetricAsync_GetsValidInputWithoutMetricValue_SuccessfullyWritesMetricWithDefault() { // Arrange const double expectedDefaultValue = 0; var metricName = _bogus.Name.FirstName(); var metricDescription = _bogus.Lorem.Sentence(); double? metricValue = null; // ReSharper disable once ExpressionIsAlwaysNull var measuredMetric = MeasuredMetric.CreateWithoutDimension(metricValue); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var metricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); // Act await metricSink.ReportMetricAsync(metricName, metricDescription, measuredMetric); // Assert statsDPublisherMock.Verify(mock => mock.Gauge(expectedDefaultValue, metricName), Times.Once()); }
public async Task ReportMetricAsync_WriteToStatsDSink_Succeeds() { // Arrange var metricName = BogusGenerator.Name.FirstName(); var metricDescription = BogusGenerator.Lorem.Sentence(); var metricValue = BogusGenerator.Random.Double(); var scrapeResult = ScrapeResultGenerator.Generate(metricValue); var statsDPublisherMock = new Mock <IStatsDPublisher>(); var statsdMetricSink = new StatsdMetricSink(statsDPublisherMock.Object, NullLogger <StatsdMetricSink> .Instance); var metricSinkWriter = new MetricSinkWriter(new List <IMetricSink> { statsdMetricSink }, NullLogger <MetricSinkWriter> .Instance); // Act await metricSinkWriter.ReportMetricAsync(metricName, metricDescription, scrapeResult); // Assert statsDPublisherMock.Verify(mock => mock.Gauge(metricValue, metricName), Times.Once()); }