Example #1
0
        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;
        }
Example #2
0
        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();
        }
Example #3
0
        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"));
        }
Example #4
0
        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)}");
            }
        }