private MethodElementFinder BuildFinder(string methodDef) { var classDef = PythonCodeGenerator.GenerateClass("ParentClass", new string[] { }, methodDef); var parser = TestParser.GetParser(classDef); return(new MethodElementFinder(GetFunctionTree(parser), parser)); }
private string GenerateMethod() { var statement = PythonCodeGenerator.GenerateDefaultVariableDeclaration(); var methodBody = PythonCodeGenerator.GenerateFunctionBody(new[] { statement }); return(PythonCodeGenerator.GenerateFunction(MethodName, _parameters, methodBody)); }
private MethodBodyElementFinder BuildFinder(string methodBody) { var methodDef = PythonCodeGenerator.GenerateFunction("ParentMethod", new string[] { }, methodBody, 0); var parser = TestParser.GetParser(methodDef); return(new MethodBodyElementFinder(GetFunctionBodyTree(parser), parser)); }
public void FindMethodInvocationsInSingleStatement() { var methodInvocation = PythonCodeGenerator.GenerateDefaultMethodInvocation(0); var finder = BuildFinder(methodInvocation); var invokedMethods = finder.FindMethodInvocations(); Assert.AreEqual(1, invokedMethods.Count()); }
public void FindReturnStatementsTest() { var methodBody = GenerateMethodBody(PythonCodeGenerator.GenerateDefaultReturnStatement()); var finder = BuildFinder(methodBody); var returnStatements = finder.FindReturnStatements(); Assert.AreEqual(1, returnStatements.Count()); }
public string BuildSummaryAndDescriptionString() { string summaryString = string.IsNullOrWhiteSpace(this.Summary) && string.IsNullOrWhiteSpace(this.Documentation) ? this.Name : this.Summary; return(PythonCodeGenerator.BuildSummaryAndDescriptionString(summaryString, this.Documentation)); }
public void FindEmbeddedStatementsTest() { var methodBody = GenerateMethodBody(PythonCodeGenerator.GenerateDefaultCompoundStatement(2)); var finder = BuildFinder(methodBody); var embeddedStatements = finder.FindEmbeddedStatements(); Assert.AreEqual(1, embeddedStatements.Count()); }
public void FindVariablesInReturnStatement() { var variableId = "variable1"; var returnStatement = PythonCodeGenerator.GenerateReturnStatement(variableId, 0); var finder = BuildFinder(returnStatement); var variables = finder.FindVariables(); Assert.AreEqual(1, variables.Count()); }
public void FindNestedStatement() { var secondLevel = PythonCodeGenerator.GenerateDefaultCompoundStatement(2); var firstLevel = PythonCodeGenerator.GenerateDefaultNestedCompoundStatement(new[] { secondLevel }); var finder = BuildFinder(firstLevel); var nestedLevels = finder.FindNestedEmbeddedStatements(); Assert.AreEqual(1, nestedLevels.Count()); }
public void FindMethodInvocation() { const string variableId = "newVariable"; var methodInvocation = PythonCodeGenerator.GenerateDefaultMethodInvocation(0); var statement = PythonCodeGenerator.GenerateAssignStatement(variableId, methodInvocation, 0); var finder = BuildFinder(statement); var invokedMethods = finder.FindMethodInvocations(); Assert.AreEqual(1, invokedMethods.Count()); }
private string GenerateMethodBody(int statementsCount) { var statements = new List <string>(); for (var i = 0; i < statementsCount; i++) { statements.Add(PythonCodeGenerator.GenerateDefaultAssignmentStatement()); } return(PythonCodeGenerator.GenerateFunctionBody(statements)); }
public void FindVariables() { const string leftPartVariableId = "newVariable"; var rightPartVariableId = "variable1"; var statement = PythonCodeGenerator.GenerateAssignStatement(leftPartVariableId, rightPartVariableId, 0); var finder = BuildFinder(statement); var leftVariables = finder.FindVariablesInLeftPart(); var rightVariables = finder.FindVariablesInRightPart(); Assert.AreEqual(1, leftVariables.Count()); Assert.AreEqual(1, rightVariables.Count()); }
public void FindCountOfDirectStatements() { var simpleStatement = PythonCodeGenerator.GenerateDefaultVariableDeclaration(); var secondLevel = PythonCodeGenerator.GenerateDefaultCompoundStatement(2); var firstLevel = PythonCodeGenerator.GenerateDefaultNestedCompoundStatement(new[] { simpleStatement }, new[] { secondLevel }); var finder = BuildFinder(firstLevel); var countOfDirectStatements = finder.CountOfDirectStatementsInBody(); Assert.AreEqual(2, countOfDirectStatements); }
public void FindMethodInvocation_With_EmptyArguments() { const string methodName = "invokedMethod1"; var methodInvocation = PythonCodeGenerator.GenerateMethodInvocation(methodName, new string[] { }, 0); var finder = BuildFinder(methodInvocation); var argumentsWithWithMethodInvocationType = finder.FindArgumentCollection().FindArgumentsWithMethodInvocationType(); var argumentsWithWithVariableType = finder.FindArgumentCollection().FindArgumentsWithVariableType(); Assert.AreEqual(0, argumentsWithWithMethodInvocationType.Count()); Assert.AreEqual(0, argumentsWithWithVariableType.Count()); }
public void FindMethodInvocationWithVariableArguments() { const string methodName = "invokedMethod1"; var arguments = new[] { "arg1", "arg2" }; var methodInvocation = PythonCodeGenerator.GenerateMethodInvocation(methodName, arguments, 0); var finder = BuildFinder(methodInvocation); var invokedMethodName = finder.FindIdentifier().FindIdentifier().FirstOrDefault(); var argumentsWithVariableType = finder.FindArgumentCollection().FindArgumentsWithVariableType(); Assert.AreEqual(methodName, invokedMethodName); Assert.AreEqual(2, argumentsWithVariableType.Count()); }
public void CountOfDirectStatementsInBodyTest() { var assignmentStatement = PythonCodeGenerator.GenerateDefaultAssignmentStatement(); var embeddedStatement = PythonCodeGenerator.GenerateDefaultCompoundStatement(2); var returnStatement = PythonCodeGenerator.GenerateDefaultReturnStatement(); string[] statements = { assignmentStatement, embeddedStatement, returnStatement }; var methodBody = GenerateMethodBody(statements); var finder = BuildFinder(methodBody); var statementsCount = finder.CountOfDirectStatementsInBody(); Assert.AreEqual(3, statementsCount); }
public void ShouldDetectAllClassesInCode() { string[] classNames = { "class1", "class2" }; var code = PythonCodeGenerator.GenerateRoot(classNames); var parserBuilder = new ParserBuilder(); parserBuilder.Build(code); var finder = parserBuilder.GetParseElementFinder(); var classes = finder.FindClasses(); var actualDetectedClasses = classes.Count(); Assert.AreEqual(classNames.Length, actualDetectedClasses); }
public void FindMethodInvocation_WithMethodInvocation_Arguments() { const string nestedInvokedMethodName = "argInvokedMethod"; var nestedArguments = new[] { "arg1", "arg2" }; var mainArgument = PythonCodeGenerator.GenerateMethodInvocation(nestedInvokedMethodName, nestedArguments, 0); const string mainInvokedMethodName = "invokedMethod1"; var methodInvocation = PythonCodeGenerator.GenerateMethodInvocation(mainInvokedMethodName, new[] { mainArgument }, 0); var finder = BuildFinder(methodInvocation); var argumentsWithWithMethodInvocationType = finder.FindArgumentCollection().FindArgumentsWithMethodInvocationType(); var argumentsWithWithVariableType = finder.FindArgumentCollection().FindArgumentsWithVariableType(); Assert.AreEqual(1, argumentsWithWithMethodInvocationType.Count()); Assert.AreEqual(0, argumentsWithWithVariableType.Count()); }
private string GenerateMethodBody(string statement) { return(PythonCodeGenerator.GenerateFunctionBody(new[] { statement })); }
public string BuildSummaryAndDescriptionString() { return(PythonCodeGenerator.BuildSummaryAndDescriptionString(this.Summary, this.Description)); }
private string GenerateMethodBody(string[] statements) { return(PythonCodeGenerator.GenerateFunctionBody(statements)); }
private string GenerateMethod(int statementsCount) { var methodBody = GenerateMethodBody(statementsCount); return(PythonCodeGenerator.GenerateFunction("ParentMethod", new string[] { }, methodBody, 0)); }