Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AirbrakeClient"/> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="backtraceBuilder"> </param>
        public AirbrakeClient(AirbrakeConfiguration configuration, IBuilder<Exception, Backtrace> backtraceBuilder = null)
        {
            if (configuration == null)
                throw new ArgumentNullException("configuration");

            this.configuration = configuration;

            if (backtraceBuilder == null)
                backtraceBuilder = new BacktraceBuilder(LogManager.GetLogger<BacktraceBuilder>());
            this.builder = new AirbrakeNoticeBuilder(configuration,backtraceBuilder);

            this.log = LogManager.GetLogger(GetType());
        }
        public void When_building_a_backtrace_then_the_catching_method_is_set()
        {
            // Arrange
            var log = new Moq.Mock <ILog>();

            var exception = GetDeepException();

            var builder = new BacktraceBuilder(log.Object);

            // Act
            var response = builder.Build(exception);

            // Assert
            Assert.That(response.CatchingMethod, Is.Not.Null);
        }
        public void When_building_a_backtrace_then_the_message_contains_messages_from_the_topmost_exception_and_all_inner_exceptions()
        {
            // Arrange
            var log = new Moq.Mock <ILog>();

            var exception = GetDeepException();

            var builder = new BacktraceBuilder(log.Object);

            // Act
            var response = builder.Build(exception);

            // Assert
            Assert.That(response.Message, Is.EqualTo("Exception: last thing wrong | ApplicationException: level two message | DivideByZeroException: Attempted to divide by zero."));
        }
        public void When_building_a_backtrace_then_the_message_contains_messages_from_the_topmost_exception_and_all_inner_exceptions()
        {
            // Arrange
            var log = new Moq.Mock<ILog>();

            var exception = GetDeepException();

            var builder = new BacktraceBuilder(log.Object);

            // Act
            var response = builder.Build(exception);

            // Assert
            Assert.That(response.Message, Is.EqualTo("Exception: last thing wrong | ApplicationException: level two message | DivideByZeroException: Attempted to divide by zero."));
        }
        public void When_building_a_backtrace_then_the_catching_method_is_set()
        {
            // Arrange
            var log = new Moq.Mock<ILog>();

            var exception = GetDeepException();

            var builder = new BacktraceBuilder(log.Object);

            // Act
            var response = builder.Build(exception);

            // Assert
            Assert.That(response.CatchingMethod, Is.Not.Null);
        }
        public void When_building_a_backtrace_then_the_trace_contains_the_full_stack_trace()
        {
            // Arrange
            var log = new Moq.Mock <ILog>();

            var exception = GetDeepException();

            var builder = new BacktraceBuilder(log.Object);

            // Act
            var response = builder.Build(exception);

            // Assert
            Assert.That(response.Trace, Has.Count.EqualTo(5));
            Assert.That(response.Trace[0].Method, Is.EqualTo("GetException"));
        }
        public void When_building_a_backtrace_then_the_trace_contains_the_full_stack_trace()
        {
            // Arrange
            var log = new Moq.Mock<ILog>();

            var exception = GetDeepException();

            var builder = new BacktraceBuilder(log.Object);

            // Act
            var response = builder.Build(exception);

            // Assert
            Assert.That(response.Trace, Has.Count.EqualTo(5));
            Assert.That(response.Trace[0].Method, Is.EqualTo("GetException"));
        }