예제 #1
0
        public void ExceptionFromEventHandlerIsLoggedAndDoesNotStopOtherHandlers()
        {
            var values1 = new EventSink <string>();

            myEvent += (sender, args) => throw new Exception("sorry");
            myEvent += values1.Add;

            executor.ScheduleEvent("hello", myEvent);

            Assert.Equal("hello", values1.ExpectValue());

            AssertEventually(TimeSpan.FromSeconds(10), TimeSpan.FromMilliseconds(20), () =>
                             logCapture.HasMessageWithText(LogLevel.Error, "Unexpected exception from event handler for String: System.Exception: sorry") &&
                             logCapture.HasMessageWithRegex(LogLevel.Debug, "at LaunchDarkly.Sdk.Internal.Concurrent.TaskExecutorTest"));
        }
 public void AssertLogMessageRegex(bool shouldHave, LogLevel level, string pattern)
 {
     if (LogCapture.HasMessageWithRegex(level, pattern) != shouldHave)
     {
         ThrowLogMatchException(shouldHave, level, pattern, true);
     }
 }
 public static void LogMessageRegex(LogCapture logCapture, bool shouldHave, LogLevel level, string pattern)
 {
     if (logCapture.HasMessageWithRegex(level, pattern) != shouldHave)
     {
         ThrowLogMatchException(logCapture, shouldHave, level, pattern, true);
     }
 }
예제 #4
0
        public void CustomPollingDataSourceBaseUri()
        {
            using (var client = new LdClient(
                       BasicConfig()
                       .DataSource(Components.PollingDataSource())
                       .Http(Components.HttpConfiguration().MessageHandler(_stubHandler))
                       .ServiceEndpoints(Components.ServiceEndpoints().Polling(CustomUri))
                       .Build()))
            {
                var req = _stubHandler.Requests.ExpectValue();
                Assert.Equal(CustomUri, BaseUriOf(req.RequestUri));

                Assert.False(LogCapture.HasMessageWithRegex(LogLevel.Error,
                                                            "You have set custom ServiceEndpoints without specifying"));
            }
        }