コード例 #1
0
        static void CheckDefaultStructureAndPredicate(LogifyAlert client, Predicate <IExceptionReportSender> predicate)
        {
            IExceptionReportSender sender = ExceptionLoggerFactory.Instance.PlatformReportSender;

            Assert.AreEqual(true, sender != null);
            Assert.AreEqual(typeof(EmptyBackgroundExceptionReportSender), sender.GetType());
            CheckSenderConsistency(client, sender);
            predicate(sender);

            sender = ((EmptyBackgroundExceptionReportSender)sender).InnerSender;
            Assert.AreEqual(true, sender != null);
            Assert.AreEqual(typeof(CompositeExceptionReportSender), sender.GetType());
            CheckSenderConsistency(client, sender);
            predicate(sender);

            CompositeExceptionReportSender compositeSender = (CompositeExceptionReportSender)sender;

            CheckSenderConsistency(client, compositeSender);
            predicate(compositeSender);
            Assert.AreEqual(true, compositeSender.Senders != null);
            Assert.AreEqual(2, compositeSender.Senders.Count);

            sender = compositeSender.Senders[0];
            Assert.AreEqual(true, sender != null);
            Assert.AreEqual(typeof(WebExceptionReportSender), sender.GetType());
            CheckSenderConsistency(client, sender);
            predicate(sender);

            sender = compositeSender.Senders[1];
            Assert.AreEqual(true, sender != null);
            Assert.AreEqual(typeof(OfflineDirectoryExceptionReportSender), sender.GetType());
            CheckSenderConsistency(client, sender);
            predicate(sender);
        }