Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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());
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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));
            }
        }
Exemplo n.º 6
0
 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));
     }
 }
Exemplo n.º 7
0
        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);
            }
        }