コード例 #1
0
        private ExpressionSyntax CreateWithMessage(ExpressionSyntax expression, string baseIndent)
        {
            if (ExpectedMessage == null)
            {
                return(expression);
            }

            var indent      = new string (Formatting.IndentationCharacter, Formatting.IndentationSize);
            var withMessage = MemberAccess(
                expression.WithTrailingTrivia(Whitespace(Formatting.NewLine + baseIndent + indent + indent)),
                "With",
                "Message");

            var matchTypeFunctionName = MatchType?.ToFullString() switch
            {
                "MessageMatch.Contains" => "Contains",
                "MessageMatch.StartsWith" => "StartsWith",
                "MessageMatch.Regex" => "Matches",
                "MessageMatch.Exact" => "EqualTo",
                null => "EqualTo",
                _ => "UNKNOWN_MATCH_TYPE"
            };

            var withMessageMatchType = MemberAccess(withMessage, matchTypeFunctionName);

            if (EndsOnSameLine(ExpectedMessage) &&
                !IsMessageTooLong(ExpectedMessage))
            {
                return(CreateSingleLineMessage(withMessageMatchType, ExpectedMessage, baseIndent + indent + indent + indent + indent));
            }
            else
            {
                return(CreateMultiLineMessage(withMessageMatchType, ExpectedMessage, baseIndent + indent + indent + indent + indent));
            }
        }