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); }
public bool IsTranslatable(AssertionExpression assertion) { if (!TranslatableAssertions.Contains(assertion.Class)) { return(false); } return(TranslatableAssertionsMethods.Contains(assertion.Method)); }
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); }
private static bool IsTranslatable(AssertionExpression assertionExpression) { return(Dictionary.IsTranslatable(assertionExpression)); }