Ejemplo n.º 1
0
        public void LogSendsMessageToSentryTest()
        {
            var name     = Guid.NewGuid().ToString();
            var sentryId = Guid.NewGuid().ToString();
            var message  = Guid.NewGuid().ToString();
            var state    = new AddressState
            {
                Address = Guid.NewGuid().ToString()
            };
            var exception = new TimeoutException(Guid.NewGuid().ToString());

            exception.AddContextData(state.Address);

            var client = Substitute.For <IRavenClient>();

            client.Capture(Arg.Any <SentryEvent>()).Returns(sentryId);

            var sut = new SentryLogger(name, client);

            sut.LogError(exception, message);

            client.Received(1).Capture(Arg.Any <SentryEvent>());
            client.Received().Capture(Arg.Is <SentryEvent>(x => x.Level == ErrorLevel.Error));
            client.Received().Capture(Arg.Is <SentryEvent>(x => x.Exception == exception));
            client.Received().Capture(Arg.Is <SentryEvent>(x => x.Message == exception.Message));
            client.Logger.Should().Be(name);
            client.Received().Capture(
                Arg.Is <SentryEvent>(x => x.Exception.Data["FormattedMessage"].As <string>() == message));
        }
Ejemplo n.º 2
0
        public void LogSendsToSentryWithoutNullFormattedMessageTest()
        {
            var name     = Guid.NewGuid().ToString();
            var sentryId = Guid.NewGuid().ToString();
            var state    = new AddressState
            {
                Address = Guid.NewGuid().ToString()
            };
            var exception = new TimeoutException(Guid.NewGuid().ToString());

            exception.AddContextData(state.Address);

            var client = Substitute.For <IRavenClient>();

            client.Capture(Arg.Any <SentryEvent>()).Returns(sentryId);

            var sut = new SentryLogger(name, client);

            sut.LogError(exception, null);

            client.Received(1).Capture(Arg.Any <SentryEvent>());
            client.Received().Capture(
                Arg.Is <SentryEvent>(x => x.Exception.Data.Contains("FormattedMessage") == false));
        }