public void Notify_NimatorResultErrorWithAllTypeOfChecksAndMinThreshold_DataDogNotifyAll() { // Arrange var result = new NimatorResult(DateTime.Now); var message = "error message"; var checkResults = new List <CheckResult> { new CheckResult("C1", NotificationLevel.Critical, message), new CheckResult("C2", NotificationLevel.Error, message), new CheckResult("C3", NotificationLevel.Warning, message), new CheckResult("C4", NotificationLevel.Okay, message) }; result.LayerResults.Add(new LayerResult("L1", checkResults)); var settings = new DataDogSettings { Threshold = NotificationLevel.Okay }; var sut = GetSut(settings); // Act sut.Notify(result); // Assert sut.Events.Count.ShouldBe(4); sut.Events[0].AlertType.ShouldBe(AlertType.Error, AlertTypeComparisonErrorMessage); sut.Events[1].AlertType.ShouldBe(AlertType.Error, AlertTypeComparisonErrorMessage); sut.Events[2].AlertType.ShouldBe(AlertType.Warning, AlertTypeComparisonErrorMessage); sut.Events[3].AlertType.ShouldBe(AlertType.Info, AlertTypeComparisonErrorMessage); }
public void Notify_NimatorResultErrorWithOneErrorCheck_DataDogNotifyOneEventWithTags() { // Arrange var result = new NimatorResult(DateTime.Now); var message = "error message"; var checkResults = new List <CheckResult> { new CheckResult("C1", NotificationLevel.Error, message) }; result.LayerResults.Add(new LayerResult("L1", checkResults)); var sut = GetSut(); // Act sut.Notify(result); // Assert sut.Events.Count.ShouldBe(1); sut.Events[0].StatName.ShouldBe(DataDogEventConverter.MetricsName); sut.Events[0].Title.ShouldBe("C1"); sut.Events[0].AlertType.ShouldBe(AlertType.Error, AlertTypeComparisonErrorMessage); sut.Events[0].Message.ShouldContain(message); var tags = sut.Events[0].Tags; tags.ShouldNotBeNull(); tags.ShouldContain("check:c1"); tags.ShouldContain("layer:l1"); tags.ShouldContain("level:error"); }
public void Notify_NimatorResultErrorWithSeveralErrorChecks_DataDogNotifyErrorsOnly() { // Arrange var result = new NimatorResult(DateTime.Now); var messageError = "error message"; var messageCritical = "critical message"; var checkResults = new List <CheckResult> { new CheckResult("C1", NotificationLevel.Error, messageError), new CheckResult("C2", NotificationLevel.Okay), new CheckResult("C3", NotificationLevel.Critical, messageCritical) }; result.LayerResults.Add(new LayerResult("L1", checkResults)); var sut = GetSut(); // Act sut.Notify(result); // Assert sut.Events.Count.ShouldBe(2); sut.Events[0].StatName.ShouldBe(DataDogEventConverter.MetricsName); sut.Events[0].Title.ShouldBe("C1"); sut.Events[0].AlertType.ShouldBe(AlertType.Error, AlertTypeComparisonErrorMessage); sut.Events[0].Message.ShouldContain(messageError); sut.Events[1].StatName.ShouldBe(DataDogEventConverter.MetricsName); sut.Events[1].Title.ShouldBe("C3"); sut.Events[1].AlertType.ShouldBe(AlertType.Error, AlertTypeComparisonErrorMessage); sut.Events[1].Message.ShouldContain(messageCritical); }
private static void SendOkayResultForTestCheck() { NimatorResult nimatorResult = new NimatorResult(DateTime.Now); List <ICheckResult> checks = new List <ICheckResult>(); checks.Add(new CheckResult("testCheck", NotificationLevel.Okay)); ILayerResult layerResult = new LayerResult("firstLayer", checks); nimatorResult.LayerResults.Add(layerResult); _notifier.Notify(nimatorResult); }
public void Notify_NimatorResultOk_NoDataDogNotify() { // Arrange var result = new NimatorResult(DateTime.Now); var sut = GetSut(); // Act sut.Notify(result); // Assert sut.Events.ShouldBeEmpty(); }
private static void SendMultipleChecksInLayer() { NimatorResult nimatorResult = new NimatorResult(DateTime.Now); List <ICheckResult> checks = new List <ICheckResult>(); checks.Add(new CheckResult("testCheck1", NotificationLevel.Okay)); checks.Add(new CheckResult("testCheck2", NotificationLevel.Warning)); checks.Add(new CheckResult("testCheck3", NotificationLevel.Error)); checks.Add(new CheckResult("testCheck4", NotificationLevel.Critical)); ILayerResult layerResult = new LayerResult("secondLayer", checks); nimatorResult.LayerResults.Add(layerResult); _notifier.Notify(nimatorResult); }
public void MetricResult_ShouldHaveCorrectlyFormattedStatName() { var result = new NimatorResult(DateTime.Now); List <ICheckResult> checkResults = new List <ICheckResult>(); checkResults.Add(new CheckResult("BasicLogin", NotificationLevel.Okay)); result.LayerResults.Add(new LayerResult(layerName: "Infrastructure", checkResults: checkResults)); var sut = GetSut(); // Act sut.Notify(result); // Assert sut.Metrics.Count.ShouldBe(2); sut.Metrics.ShouldContain(metric => metric.StatName.EndsWith("check.BasicLogin.result")); }
public void Ctor_NotEmptySourceEnvironment_MessageContainsEnvironment(string sourceEnv) { // Arrange var result = new NimatorResult(DateTime.Now); var checks = new List <ICheckResult> { new CheckResult("My Check", NotificationLevel.Critical) }; result.LayerResults.Add(new LayerResult("My Test", checks)); // Act var message = new SlackMessage(result, NotificationLevel.Error, sourceEnv); // Assert message?.Text.ShouldNotBeNull(); message.Text.ShouldNotContain(SlackMessage.ENV_PREFIX); }
public void WhenCheckHasNotificationLevelNotOkay_MetricIsHealthy_ShouldBeFalse(NotificationLevel notificationLevel) { var result = new NimatorResult(DateTime.Now); List <ICheckResult> checkResults = new List <ICheckResult>(); checkResults.Add(new CheckResult("BasicLogin", notificationLevel)); result.LayerResults.Add(new LayerResult(layerName: "Infrastructure", checkResults: checkResults)); var sut = GetSut(); // Act sut.Notify(result); // Assert sut.Metrics.Count.ShouldBe(2); sut.Metrics.ShouldContain(metric => metric.StatName.EndsWith(".isHealthy") && metric.Value.Equals(0)); }
public void MetricResult_ShouldBeExpectedValue_WhenCheckHasNotificationLevelOf_( NotificationLevel notificationLevel, int expectedValue) { var result = new NimatorResult(DateTime.Now); List <ICheckResult> checkResults = new List <ICheckResult>(); checkResults.Add(new CheckResult("BasicLogin", notificationLevel)); result.LayerResults.Add(new LayerResult(layerName: "Infrastructure", checkResults: checkResults)); var sut = GetSut(); // Act sut.Notify(result); // Assert sut.Metrics.Count.ShouldBe(2); sut.Metrics.ShouldContain(metric => metric.StatName.EndsWith(".result") && metric.Value.Equals(expectedValue)); }