public FailedAnalyzedAssertion AnalyzeException(FailedAssertion part) { HandledException? handledException = null; IExceptionHandlerPattern?handledExceptionPattern = null; var exception = part.Exception !; foreach (var pattern in _patterns) { if (pattern.IsMatch(exception)) { handledException = pattern.Handle(part); if (handledException != null) { handledExceptionPattern = pattern; break; } } } FormattableString?failedAssertionMessage = handledException?.Message; if (handledException == null) { failedAssertionMessage = $@"Assertion threw {exception.GetType().FullName}: {exception.Message}"; } return(new FailedAnalyzedAssertion(part, FriendlyMessageFormatter.GetString(failedAssertionMessage, _context.EvaluatedExpressions), handledExceptionPattern, handledException?.CauseOfException)); }
internal FailedAnalyzedAssertion(FailedAssertion part, string?message, IExceptionHandlerPattern?exceptionHandlerPattern, Expression?causeOfException) { Assertion = part; Message = message; ExceptionHandlerPattern = exceptionHandlerPattern; CauseOfException = causeOfException; }
internal FailedAnalyzedAssertion(FailedAssertion part, string?message, IFriendlyMessagePattern?friendlyMessagePattern) { Assertion = part; Message = message; FriendlyMessagePattern = friendlyMessagePattern; }
public FriendlyMessageProvider(AssertionFailureContext context, FailedAssertion part) { _context = context; _part = part; }