public void SetUp() { _fakeUserCustomDataBuilder = new FakeUserCustomDataBuilder(); _raygunMessageBuilder = new RaygunMessageBuilder(() => FakeHttpContext.For(new FakeHttpApplication())); _fakeRaygunClient = new FakeRaygunClient(); _currentThreadTaskScheduler = new CurrentThreadTaskScheduler(); _appender = new TestRaygunAppender(_fakeUserCustomDataBuilder, _raygunMessageBuilder, RaygunClientFactoryMethod.From(apiKey => _fakeRaygunClient), new TypeActivator(l => { }), _currentThreadTaskScheduler); _fakeErrorHandler = new FakeErrorHandler(); _appender.ErrorHandler = _fakeErrorHandler; }
public override void SetUp() { base.SetUp(); var wrapper = new N2.Tests.Fakes.FakeWebContextWrapper(); parser = new UrlParser(persister, wrapper, new Host(wrapper, 1, 1), new HostSection()); root = CreateOneItem <N2.Tests.Edit.LinkTracker.Items.TrackableItem>(1, "root", null); item1 = CreateOneItem <N2.Tests.Edit.LinkTracker.Items.TrackableItem>(2, "item1", root); item2 = CreateOneItem <N2.Tests.Edit.LinkTracker.Items.TrackableItem>(3, "item2", root); var errorHandler = new FakeErrorHandler(); linkFactory = new Tracker(persister, null, parser, errorHandler); linkFactory.Start(); }
public void WhenSendingErrorToRaygunFailsThenThatIsLogged() { var appender = new TestRaygunAppender(_fakeUserCustomDataBuilder, _raygunMessageBuilder, RaygunClientFactoryMethod.From(apiKey => new FakeBrokenRaygunClient()), new TypeActivator(l => { }), _currentThreadTaskScheduler); var fakeErrorHandler = new FakeErrorHandler(); appender.ErrorHandler = fakeErrorHandler; var errorLoggingEvent = new LoggingEvent(GetType(), null, GetType().Name, Level.Error, null, new TestException()); appender.DoAppend(errorLoggingEvent); Assert.That(fakeErrorHandler.Errors, Has.Exactly(1).StartsWith("RaygunAppender: Could not send error to the Raygun API, retried 0 times")); }
public override void SetUp() { base.SetUp(); var wrapper = new N2.Tests.Fakes.FakeWebContextWrapper(); parser = TestSupport.Setup(persister, wrapper, new Host(wrapper, 1, 1)); root = CreateOneItem <N2.Tests.Edit.LinkTracker.Items.TrackableItem>(1, "root", null); item1 = CreateOneItem <N2.Tests.Edit.LinkTracker.Items.TrackableItem>(2, "item1", root); item2 = CreateOneItem <N2.Tests.Edit.LinkTracker.Items.TrackableItem>(3, "item2", root); var errorHandler = new FakeErrorHandler(); var monitor = new N2.Plugin.ConnectionMonitor(); linkFactory = new Tracker(persister, null, parser, monitor, errorHandler); monitor.SetConnected(Installation.SystemStatusLevel.UpAndRunning); }
public async Task CanDeadLetterMessageManuallyWithoutAnyNoise() { var listLoggerFactory = new ListLoggerFactory(outputToConsole: true); var activator = Using(new BuiltinHandlerActivator()); activator.Handle <string>(async(bus, message) => { await bus.Advanced.TransportMessage.Deadletter(errorDetails: "has been manually dead-lettered"); }); var fakeErrorHandler = new FakeErrorHandler(); Configure.With(activator) .Logging(l => l.Use(listLoggerFactory)) .Transport(t => t.UseInMemoryTransport(new InMemNetwork(), "manual-deadlettering")) .Options(o => o.Register <IErrorHandler>(c => fakeErrorHandler)) //< provide our own implementation here, so we'll know what gets dead-lettered .Start(); await activator.Bus.SendLocal("HEJ MED DIG MIN VEN"); var poisonMessage = await fakeErrorHandler.GetNextPoisonMessage(timeoutSeconds : 2); Assert.That(poisonMessage.Item1.Headers, Contains.Key(Headers.ErrorDetails).And.ContainValue("has been manually dead-lettered")); Assert.That(poisonMessage.Item1.Headers, Contains.Key(Headers.SourceQueue).And.ContainValue("manual-deadlettering")); Console.WriteLine("Exception passed to error handler:"); Console.WriteLine(poisonMessage.Item2); var linesAboveInfo = listLoggerFactory.Where(log => log.Level > LogLevel.Info).ToList(); if (linesAboveInfo.Any()) { throw new AssertionException($@"Didn't expect NOISE in the log, but the following lines were > INFO: {string.Join(Environment.NewLine, linesAboveInfo)}"); } }