示例#1
0
        public static MethodDeclarationSyntax TranslateAssertions(MethodDeclarationSyntax methodDeclaration)
        {
            for (int i = 0; i < methodDeclaration.DescendantNodes().OfType <ExpressionStatementSyntax>().Count(); i++)
            {
                ExpressionStatementSyntax expressionStatement = methodDeclaration.DescendantNodes().OfType <ExpressionStatementSyntax>().ToList()[i];

                if (AssertionExpression.IsAssertion(expressionStatement))
                {
                    AssertionExpression assertionExpression = new AssertionExpression(expressionStatement);

                    if (IsTranslatable(assertionExpression))
                    {
                        AssertionExpression translatedExpression = Dictionary.Translate(assertionExpression);
                        var translatedStatement = SyntaxFactory.ExpressionStatement(SyntaxFactory.ParseExpression(translatedExpression.Class + "." + translatedExpression.Method + "(" + translatedExpression.Arguments + ")")).WithTriviaFrom(expressionStatement);
                        methodDeclaration = methodDeclaration.ReplaceNode(expressionStatement, translatedStatement);
                    }
                    else
                    {
                        var commentedStatement = CommentExpressionStatement(expressionStatement);
                        methodDeclaration = methodDeclaration.ReplaceNode(expressionStatement, commentedStatement);
                    }
                }
                else
                {
                    Logger.Info("is not assertion: " + Environment.NewLine + expressionStatement);
                }
            }
            return(methodDeclaration);
        }
示例#2
0
 public bool IsTranslatable(AssertionExpression assertion)
 {
     if (!TranslatableAssertions.Contains(assertion.Class))
     {
         return(false);
     }
     return(TranslatableAssertionsMethods.Contains(assertion.Method));
 }
示例#3
0
        public AssertionExpression Translate(AssertionExpression assertion)
        {
            string translatedMethod;

            AssertionsMethodsDictionary.TryGetValue(assertion.Method, out translatedMethod);
            assertion.Method = translatedMethod == null ? assertion.Method : translatedMethod;
            Logger.Info("method : " + assertion.Method + ", translated method: " + translatedMethod);
            return(assertion);
        }
示例#4
0
 private static bool IsTranslatable(AssertionExpression assertionExpression)
 {
     return(Dictionary.IsTranslatable(assertionExpression));
 }