Exemple #1
0
        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));
        }
Exemple #2
0
 internal FailedAnalyzedAssertion(FailedAssertion part, string?message, IExceptionHandlerPattern?exceptionHandlerPattern, Expression?causeOfException)
 {
     Assertion = part;
     Message   = message;
     ExceptionHandlerPattern = exceptionHandlerPattern;
     CauseOfException        = causeOfException;
 }
Exemple #3
0
 internal FailedAnalyzedAssertion(FailedAssertion part, string?message, IFriendlyMessagePattern?friendlyMessagePattern)
 {
     Assertion = part;
     Message   = message;
     FriendlyMessagePattern = friendlyMessagePattern;
 }
 public FriendlyMessageProvider(AssertionFailureContext context, FailedAssertion part)
 {
     _context = context;
     _part    = part;
 }