public void LogSendsNestedExceptionDetailsToSentryTest() { var value = Guid.NewGuid().ToString(); var sentryId = Guid.NewGuid().ToString(); var name = Guid.NewGuid().ToString(); var eventId = new EventId(Environment.TickCount); var state = new AddressState { Address = Guid.NewGuid().ToString() }; var innerException = Model.Ignoring <ValueTypeException>(x => x.Data).Create <ValueTypeException>() .Set(x => x.Id = value); var exception = new ArgumentNullException(Guid.NewGuid().ToString(), innerException); exception.AddContextData(state.Address); var client = Substitute.For <IRavenClient>(); client.Capture(Arg.Any <SentryEvent>()).Returns(sentryId); var sut = new SentryLogger(name, client); sut.Log(LogLevel.Critical, eventId, state, exception, (logState, ex) => ex.ToString()); client.Received().Capture( Arg.Is <SentryEvent>(x => x.Exception.Data["ValueTypeException.Id"].As <string>() == value)); }