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)); }
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)); }