def test_is_valid_function_with_return_in_the_middle(self): m_decl_original = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'severalReturns' ][0] m_inv = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'severalReturns' ][0] is_matched = is_match_to_the_conditions(self.example_ast, m_inv, m_decl_original) self.assertEqual(is_matched, False)
def test_is_valid_function_with_return_in_the_middle(self): filepath = self.current_directory / "Example.java" ast = AST.build_from_javalang(build_ast(filepath)) m_decl_original = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'severalReturns' ][0] m_inv = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_INVOCATION) if x.member == 'severalReturns' ][0] is_matched = is_match_to_the_conditions(ast, m_inv, m_decl_original) self.assertEqual(is_matched, False)
def test_is_valid_function_with_one_return(self): m_decl = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'runDelete' ][0] m_decl_original = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'delete' ][0] m_inv = [ x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'delete' ][0] is_matched = is_match_to_the_conditions(self.example_ast, m_inv, m_decl_original) self.assertEqual(is_matched, True)
def test_is_return_type_not_assigning_value_valid(self): m_decl = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'method_decl' ][0] m_inv = [ x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'invocation' ][0] m_decl_original = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'invocation' ][0] self.assertFalse( is_match_to_the_conditions(self.example_ast, m_inv, m_decl_original))
def test_is_valid_function_with_one_return(self): filepath = self.current_directory / "Example.java" ast = AST.build_from_javalang(build_ast(filepath)) m_decl = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'runDelete' ][0] m_decl_original = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'delete' ][0] m_inv = [ x for x in ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'delete' ][0] is_matched = is_match_to_the_conditions(ast, m_inv, m_decl_original) self.assertEqual(is_matched, True)
def test_is_return_type_not_assigning_value_valid(self): filepath = self.current_directory / "Example.java" ast = AST.build_from_javalang(build_ast(filepath)) m_decl = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'method_decl' ][0] m_inv = [ x for x in ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'invocation' ][0] m_decl_original = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'invocation' ][0] self.assertFalse( is_match_to_the_conditions(ast, m_inv, m_decl_original))
def test_invocation_inside_if_not_process(self): filepath = self.current_directory / "Example_nested.java" ast = AST.build_from_javalang(build_ast(filepath)) m_decl = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'doAction' ][0] m_decl_original = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'handleAction' ][0] m_inv = [ x for x in ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'handleAction' ][0] is_matched = is_match_to_the_conditions(ast, m_inv, m_decl_original) self.assertEqual(is_matched, False)
def test_is_invocation_in_if_with_single_statement_valid(self): filepath = self.current_directory / "Example.java" ast = AST.build_from_javalang(build_ast(filepath)) m_decl = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'test_single_stat_in_if' ][0] m_decl_original = [ x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION) if x.name == 'intersected_var' ][0] m_inv = [ x for x in ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'intersected_var' ][0] self.assertFalse( is_match_to_the_conditions(ast, m_inv, m_decl_original))
def test_is_invocation_in_if_with_single_statement_valid(self): m_decl = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'test_single_stat_in_if' ][0] m_decl_original = [ x for x in self.example_ast.get_proxy_nodes( ASTNodeType.METHOD_DECLARATION) if x.name == 'intersected_var' ][0] m_inv = [ x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes( ASTNodeType.METHOD_INVOCATION) if x.member == 'intersected_var' ][0] self.assertFalse( is_match_to_the_conditions(self.example_ast, m_inv, m_decl_original))