public void AggregatedAlertNullSourceAndTarget() { StatusAuditReport report = new StatusAuditReport(DateTime.MinValue, TimeSpan.FromSeconds(1)); AggregatedAlert a = new AggregatedAlert(null, null, DateTime.MinValue, report); Assert.AreEqual(Status.DefaultSource, a.Sources[0]); Assert.AreEqual(Status.DefaultTarget, a.Target); }
public void AggregatedAlertProperties() { using (AmbientClock.Pause()) { StatusAuditAlert commonAlert = new StatusAuditAlert(.7f, "TestCode", "TerseTest", "Detailed Test Message"); StatusAuditReport report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10), commonAlert); AggregatedAlert first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); Assert.IsNotNull(first.PropertyRanges); Assert.AreEqual(first.Report, report1); } }
public void StatusAuditReportMisc() { StatusAuditAlert sa = new StatusAuditAlert(StatusRating.Okay, "Okay", "terse", "detailed"); StatusAuditReport sr = new StatusAuditReport(AmbientClock.UtcNow.AddMinutes(1), TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(2), sa); Assert.AreNotEqual(StatusAuditReport.Pending, sr); Assert.AreNotEqual(StatusAuditReport.Pending.GetHashCode(), sr.GetHashCode()); Assert.AreNotEqual(sr.GetHashCode(), new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromMilliseconds(5)).GetHashCode()); Assert.IsFalse(StatusAuditReport.Pending.Equals((StatusAuditReport)null)); Assert.IsFalse(StatusAuditReport.Pending !.Equals("test")); // this is a false positive in the analyzer's null detector Assert.AreNotEqual(StatusAuditReport.Pending.ToString(), sr.ToString()); }
public void AggregatedDefaultRating() { using (AmbientClock.Pause()) { StatusAuditAlert commonAlert = new StatusAuditAlert(.7f, "TestCode", "TerseTest", "Detailed Test Message"); StatusResults results = new StatusResults("TestSource", "TestTarget", ImmutableArray <StatusResults> .Empty); AggregatedAlert alert = new AggregatedAlert(results); Assert.AreEqual(StatusRating.Okay, alert.RatingSum); StatusAuditReport report = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10)); results = new StatusResults("TestSource", "TestTarget", AmbientClock.UtcNow, 0, ImmutableArray <StatusProperty> .Empty, report); alert = new AggregatedAlert(results); Assert.AreEqual(StatusRating.Okay, alert.RatingSum); } }
public void AggregatedAlertExceptions() { using (AmbientClock.Pause()) { StatusAuditAlert alert1 = new StatusAuditAlert(.7f, "TestCode1", "TerseTest", "Detailed Test Message"); StatusAuditAlert alert2 = new StatusAuditAlert(.7f, "TestCode2", "TerseTest", "Detailed Test Message"); StatusAuditReport report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10), alert1); StatusAuditReport report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10), alert2); AggregatedAlert first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); AggregatedAlert second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, report2); StatusResults secondResults = new StatusResults("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, report2); Assert.ThrowsException <InvalidOperationException>(() => first.Aggregate(secondResults)); Assert.ThrowsException <InvalidOperationException>(() => first.Aggregate("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), report2)); report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10), alert1); secondResults = new StatusResults("TestSource2", "MismatchedTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, report2); Assert.ThrowsException <InvalidOperationException>(() => first.Aggregate(secondResults)); Assert.ThrowsException <InvalidOperationException>(() => first.Aggregate("TestSource2", "MismatchedTarget", AmbientClock.UtcNow.AddSeconds(-10), report2)); } }
public void AggregatedAlertCanBeAggregated() { using (AmbientClock.Pause()) { StatusAuditAlert alert1 = new StatusAuditAlert(.7f, "TestCode1", "TerseTest", "Detailed Test Message"); StatusAuditAlert alert2 = new StatusAuditAlert(.7f, "TestCode2", "TerseTest", "Detailed Test Message"); StatusAuditReport report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10), alert1); StatusAuditReport report1NoAlert = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10), null); StatusAuditReport report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10), alert2); StatusAuditReport report2NoAlert = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10), null); AggregatedAlert first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); AggregatedAlert second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, report2); Assert.IsFalse(first.CanBeAggregated("/", report2)); Assert.IsFalse(first.CanBeAggregated("/", report2NoAlert)); Assert.IsFalse(first.CanBeAggregated("/", null)); Assert.IsTrue(first.CanBeAggregated("TestTarget", report1)); Assert.IsFalse(first.CanBeAggregated("TestTarget", report1NoAlert)); Assert.IsFalse(first.CanBeAggregated("TestTarget", null)); } }
public void AggregatedAlertAggregate() { using (AmbientClock.Pause()) { StatusAuditAlert commonAlert = new StatusAuditAlert(.7f, "TestCode", "TerseTest", "Detailed Test Message"); StatusAuditReport report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10), commonAlert); StatusAuditReport report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10), commonAlert); AggregatedAlert first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); AggregatedAlert second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, report2); StatusResults secondResults = new StatusResults("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, report2); first.Aggregate(secondResults); report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10)); report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10)); first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, report2); secondResults = new StatusResults("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, report2); first.Aggregate(secondResults); Assert.AreEqual(StatusRating.Okay, first.AverageRating); first.Aggregate("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), report2); Assert.AreEqual(StatusRating.Okay, first.AverageRating); //report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1)); //report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2)); //first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); //second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, report2); //secondResults = new StatusResults("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray<StatusProperty>.Empty, report2); //first.Aggregate(secondResults); //Assert.AreEqual(StatusRating.Okay, first.AverageRating); //first.Aggregate("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), report2); //Assert.AreEqual(StatusRating.Okay, first.AverageRating); report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1)); report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2)); first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, report1); second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, report2); secondResults = new StatusResults("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromMilliseconds(50), AmbientClock.UtcNow.AddSeconds(5))); first.Aggregate(secondResults); Assert.AreEqual(StatusRating.Okay, first.AverageRating); first.Aggregate("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromMilliseconds(50), AmbientClock.UtcNow.AddSeconds(5))); Assert.AreEqual(StatusRating.Okay, first.AverageRating); first = new AggregatedAlert("TestSource1", "TestTarget", DateTime.MinValue, null); second = new AggregatedAlert("TestSource2", "TestTarget", DateTime.MinValue, null); secondResults = new StatusResults("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, null); first.Aggregate(secondResults); Assert.AreEqual(StatusRating.Okay, first.AverageRating); first.Aggregate("TestSource2", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), null); Assert.AreEqual(StatusRating.Okay, first.AverageRating); report1 = new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(1), AmbientClock.UtcNow.AddMinutes(10)); report2 = new StatusAuditReport(AmbientClock.UtcNow.AddSeconds(-10), TimeSpan.FromSeconds(2), AmbientClock.UtcNow.AddSeconds(-10).AddMinutes(10)); first = new AggregatedAlert("TestSource", "TestTarget", DateTime.MinValue, report1); second = new AggregatedAlert("TestSource", "TestTarget", DateTime.MinValue, report2); secondResults = new StatusResults("TestSource", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), 0, ImmutableArray <StatusProperty> .Empty, new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(13))); first.Aggregate(secondResults); Assert.AreEqual(StatusRating.Okay, first.AverageRating); first.Aggregate("TestSource", "TestTarget", AmbientClock.UtcNow.AddSeconds(-10), new StatusAuditReport(AmbientClock.UtcNow, TimeSpan.FromSeconds(13))); Assert.AreEqual(StatusRating.Okay, first.AverageRating); } }