Exemple #1
0
    def test_determine_type_without_variables_declaration(self):
        m_decl = [
            x for x in self.example_ast.get_proxy_nodes(
                ASTNodeType.METHOD_DECLARATION) if x.name == 'method'
        ][0]
        m_decl_original = [
            x for x in self.example_ast.get_proxy_nodes(
                ASTNodeType.METHOD_DECLARATION)
            if x.name == 'method_without_params'
        ][0]
        m_inv = [
            x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes(
                ASTNodeType.METHOD_INVOCATION)
            if x.member == 'method_without_params'
        ][0]
        d = {'method_without_params': [m_decl_original]}
        type = determine_algorithm_insertion_type(self.example_ast, m_decl,
                                                  m_inv, d)
        self.assertEqual(
            type, InlineTypesAlgorithms.WITHOUT_RETURN_WITHOUT_ARGUMENTS)

        # We consider all cases (with or without return)
        # if there are no variables, declared in invoked function

        m_decl = [
            x for x in self.example_ast.get_proxy_nodes(
                ASTNodeType.METHOD_DECLARATION)
            if x.name == 'method_with_return_not_var_decl'
        ][0]
        m_decl_original = [
            x for x in self.example_ast.get_proxy_nodes(
                ASTNodeType.METHOD_DECLARATION)
            if x.name == 'closeServer_return'
        ][0]
        m_inv = [
            x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes(
                ASTNodeType.METHOD_INVOCATION)
            if x.member == 'closeServer_return'
        ][0]
        d = {'closeServer_return': [m_decl_original]}
        type = determine_algorithm_insertion_type(self.example_ast, m_decl,
                                                  m_inv, d)

        self.assertEqual(type,
                         InlineTypesAlgorithms.WITH_RETURN_WITHOUT_ARGUMENTS)
 def test_determine_type_with_overridden_functions(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 == 'invoke_overridden'
     ][0]
     m_decl_original = [
         x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION)
         if x.name == 'overridden_func'
     ]
     m_inv = [
         x for x in ast.get_subtree(m_decl).get_proxy_nodes(
             ASTNodeType.METHOD_INVOCATION) if x.member == 'overridden_func'
     ][0]
     d = {'overridden_func': m_decl_original}
     type = determine_algorithm_insertion_type(ast, m_decl, m_inv, d)
     self.assertEqual(type, InlineTypesAlgorithms.DO_NOTHING)
Exemple #3
0
 def test_determine_type_with_overridden_functions(self):
     m_decl = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION)
         if x.name == 'invoke_overridden'
     ][0]
     m_decl_original = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION) if x.name == 'overridden_func'
     ]
     m_inv = [
         x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes(
             ASTNodeType.METHOD_INVOCATION) if x.member == 'overridden_func'
     ][0]
     d = {'overridden_func': m_decl_original}
     type = determine_algorithm_insertion_type(self.example_ast, m_decl,
                                               m_inv, d)
     self.assertEqual(type, InlineTypesAlgorithms.DO_NOTHING)
Exemple #4
0
 def test_determine_type_with_parameters(self):
     m_decl = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION) if x.name == 'some_method'
     ][0]
     m_decl_original = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION)
         if x.name == 'method_with_parameters'
     ][0]
     m_inv = [
         x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes(
             ASTNodeType.METHOD_INVOCATION)
         if x.member == 'method_with_parameters'
     ][0]
     d = {'method_with_parameters': [m_decl_original]}
     type = determine_algorithm_insertion_type(self.example_ast, m_decl,
                                               m_inv, d)
     self.assertEqual(type, InlineTypesAlgorithms.DO_NOTHING)
 def test_determine_type_with_return_without_parameters(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 == 'reset_return_var_decl'
     ][0]
     m_decl_original = [
         x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION)
         if x.name == 'closeServer_return'
     ][0]
     m_inv = [
         x for x in ast.get_subtree(m_decl).get_proxy_nodes(
             ASTNodeType.METHOD_INVOCATION)
         if x.member == 'closeServer_return'
     ][0]
     d = {'closeServer_return': [m_decl_original]}
     type = determine_algorithm_insertion_type(ast, m_decl, m_inv, d)
     self.assertEqual(type,
                      InlineTypesAlgorithms.WITH_RETURN_WITHOUT_ARGUMENTS)
Exemple #6
0
 def test_determine_type_without_return_without_arguments(self):
     m_decl = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION) if x.name == 'method'
     ][0]
     m_decl_original = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION)
         if x.name == 'method_without_params'
     ][0]
     m_inv = [
         x for x in self.example_ast.get_subtree(m_decl).get_proxy_nodes(
             ASTNodeType.METHOD_INVOCATION)
         if x.member == 'method_without_params'
     ][0]
     d = {'method_without_params': [m_decl_original]}
     type = determine_algorithm_insertion_type(self.example_ast, m_decl,
                                               m_inv, d)
     self.assertEqual(
         type, InlineTypesAlgorithms.WITHOUT_RETURN_WITHOUT_ARGUMENTS)
 def test_determine_type_with_invalid_functions(self):
     """Tests if we have invocation,
     but we didn't find it in the list of method declarations
     in current class."""
     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 == 'invoke_overridden'
     ][0]
     m_decl_original = [
         x for x in ast.get_proxy_nodes(ASTNodeType.METHOD_DECLARATION)
         if x.name == 'overridden_func'
     ]
     m_inv = [
         x for x in ast.get_subtree(m_decl).get_proxy_nodes(
             ASTNodeType.METHOD_INVOCATION) if x.member == 'overridden_func'
     ][0]
     d = {'SOME_RANDOM_NAME': m_decl_original}
     type = determine_algorithm_insertion_type(ast, m_decl, m_inv, d)
     self.assertEqual(type, InlineTypesAlgorithms.DO_NOTHING)
 def test_determine_type_with_non_intersected_variables_declaration(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_not_intersected_var_decl'
     ][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]
     d = {'intersected_var': [m_decl_original]}
     type = determine_algorithm_insertion_type(ast, m_decl, m_inv, d)
     self.assertTrue(type in [
         InlineTypesAlgorithms.WITH_RETURN_WITHOUT_ARGUMENTS,
         InlineTypesAlgorithms.WITHOUT_RETURN_WITHOUT_ARGUMENTS
     ])
Exemple #9
0
 def test_determine_type_with_non_intersected_variables_declaration(self):
     m_decl = [
         x for x in self.example_ast.get_proxy_nodes(
             ASTNodeType.METHOD_DECLARATION)
         if x.name == 'test_not_intersected_var_decl'
     ][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]
     d = {'intersected_var': [m_decl_original]}
     type = determine_algorithm_insertion_type(self.example_ast, m_decl,
                                               m_inv, d)
     self.assertTrue(type in [
         InlineTypesAlgorithms.WITH_RETURN_WITHOUT_ARGUMENTS,
         InlineTypesAlgorithms.WITHOUT_RETURN_WITHOUT_ARGUMENTS
     ])