Example #1
0
def test_interface_equal():
    method1 = Method("a")
    method2 = Method("a")
    a = Interface("a", methods=[method1])
    b = Interface("a", methods=[method2])
    output = a==b
    assert output == True
Example #2
0
def test_interface_not_equal_name():
    method1 = Method("a")
    method2 = Method("a")
    a = Interface("a", methods=[method1])
    b = Interface("b", methods=[method2])
    output = a==b
    assert output == False
Example #3
0
def test_interface_diffent_method_number():
    method1 = Method("a")
    method2 = Method("a")
    method3 = Method("b")
    a = Interface("a", methods=[method1])
    b = Interface("a", methods=[method2, method3])
    output = a==b
    assert output == False
Example #4
0
def test_interface_not_equal_method():
    method1 = Method("a")
    method2 = Method("a")
    method3 = Method("b")
    method4 = Method("c")
    a = Interface("a", methods=[method1, method4])
    b = Interface("a", methods=[method2, method3])
    output = a==b
    assert output == False
Example #5
0
def test_interface_methods_unordered():
    method1 = Method("a")
    method2 = Method("a")
    method3 = Method("b")
    method4 = Method("b")
    a = Interface("a", methods=[method1, method4])
    b = Interface("a", methods=[method3, method2])
    output = a==b
    assert output == False
def test_convert_interface_wit_implement_interface():
    method = Method("example")
    interface1 = Interface("interface1", [method])
    interface2 = Interface("interface2", [method], interfaces=[interface1])
    interface_java2 = InterfaceToJava(interface2)
    output = interface_java2.convert()
    expected = (f"import java.util.*;\n\npublic interface interface2 " 
                f"implements interface1 {{\n\n\tpublic void example();\n}}")
    assert output == expected
def test_interface_example_2():
    method1 = Method(
        "foo", "void",
        [Attribute("a", "void"), Attribute("b", "int")], Visibility.public)
    method2 = Method("do", "void", [], Visibility.public)
    example = Interface("Example", [method1, method2], Visibility.public,
                        [Interface("IFoo", [])])

    with open(path.join(examples_folder, "interface_example_2.txt"),
              'r') as python_example:
        expected = python_example.read()

    result = InterfaceToPython(example).convert()
    assert result == expected
def test_convert_interface():
    method = Method("example")
    interface = Interface("interface_example", [method])
    interface_java = InterfaceToJava(interface)
    output = interface_java.convert()
    expected = "import java.util.*;\n\npublic interface interface_example {\n\n\tpublic void example();\n}"
    assert output == expected
Example #9
0
def test_python_example_3():
    field1 = Attribute("mail_reader", "MailReader", Visibility.public)
    field2 = Attribute("configs", "Configs", Visibility.private)
    field3 = Attribute("network_adapter", "NetworkAdapter", Visibility.public)
    field4 = Attribute("test_runner", "TestRunner", Visibility.protected)

    param1 = Attribute("how_much", "int")
    param2 = Attribute("flag1", "bool")
    param3 = Attribute("flag2", "bool")

    method1 = Method("initialize", "void")
    method2 = Method("initialize_2", "void", modifier=Modifier.abstract)
    method3 = Method("do_things", "void", [param1, param2, param3],
                     Visibility.protected, Modifier.static)
    method4 = Method(
        "no_one_will_ever_use_this", "string",
        [Attribute("trash", "void"),
         Attribute("trash_can", "void")], Visibility.private)

    weird_god_class = ClassData("WeirdGodClass",
                                [field1, field2, field3, field4],
                                [method1, method2, method3, method4], [],
                                [Interface("IDoManyThings", [])])

    with open(examples_folder + "/python_example_3.txt",
              'r') as python_example:
        expected = python_example.read()

    result = ClassToPython(weird_god_class).convert()
    assert result == expected
Example #10
0
def test_java_example_2():
    param1 = Attribute("damage", "int")
    param2 = Attribute("entity", "Entity")
    param3 = Attribute("bonus", "Bonus")
    method1 = Method("attack", "void", [param1, param2, param3])
    method2 = Method("cry", "void", [], Visibility.protected, Modifier.static)
    orc_class = ClassData("Orc", [], [method1, method2],
                          [ClassData("Monster")],
                          [Interface("IWalk", []),
                           Interface("IAttack", [])])

    with open(examples_folder + "/java_example_2.txt", 'r') as java_example:
        expected = java_example.read()

    result = ClassToJava(orc_class).convert()
    assert result == expected
def test_interface_example_1():
    method1 = Method("do", "void", [], Visibility.public)
    example = Interface("Example", [method1])

    with open(path.join(examples_folder, "interface_example_1.txt"),
              'r') as python_example:
        expected = python_example.read()

    result = InterfaceToPython(example).convert()
    assert result == expected
def test_interfaces_returned_read_xml():
    examples_folder = path.abspath(
        path.join(__file__,
                  "../../../src/xmlToData/uml_samples/uml_interface.xml"))
    interface_ = Interface("CalculoDeSalario", [
        Method("calcular_salario_1", "float",
               [Attribute("funcionario", "Funcionario")]),
        Method("calcular_salario_2", "float", [
            Attribute("funcionario", "Funcionario"),
            Attribute("carga_horaria", "int")
        ])
    ], Visibility.public)
    list_of_classes, list_of_interfaces = DrawIoXmlParser(
        examples_folder).read_xml()
    assert list_of_interfaces[0] == interface_
Example #13
0
    def read_xml(uml_data: str):
        list_of_methods = []
        list_of_methods_string_literals = []

        html = bs(uml_data, 'html.parser')

        result = html.find_all('p')

        if result[0].b is None:
            interface_name = result[1].b.string
        else:
            interface_name = result[0].b.string

        list_of_methods_string_literals += str(result[-1]).split("<br>")
        if len(list_of_methods_string_literals) == 1:
            list_of_methods_string_literals = str(result[-1]).split("<br/>")

        list_of_methods_string_literals[0] = \
            list_of_methods_string_literals[0].replace("<p style=\"margin: 0px ; margin-left: 4px\">", "")
        list_of_methods_string_literals[-1] = \
            list_of_methods_string_literals[-1].replace("</p>", "")

        for xml_string in list_of_methods_string_literals:
            if xml_string != "":
                visibility = VisibilityExtractor.extract_visibility(xml_string)
                type_ = ReturnTypeExtractor.extract_type(xml_string)
                name = MethodNameExtractor.extract_name(xml_string)
                list_of_parameters_string = ParametersExtractor.extract_parameters_string(
                    xml_string)

                list_of_parameters = []
                if len(list_of_parameters_string
                       ) != 0 and list_of_parameters_string[0] != '':
                    for parameter_string in list_of_parameters_string:
                        parameter_name = AttributeNameExtractor.extract_name(
                            parameter_string)
                        parameter_type = ReturnTypeExtractor.extract_type(
                            parameter_string)
                        parameter = Attribute(parameter_name, parameter_type)
                        list_of_parameters.append(parameter)

                method = Method(name, type_, list_of_parameters, visibility)
                list_of_methods.append(method)

        return Interface(interface_name, list_of_methods)
def test_file_names_with_interface(data_name, expected):
    assert FileNameToPython(Interface(data_name, [])).get_file_name() == expected
Example #15
0
 def create_food():
     method = Method("getNutrients", return_type="str")
     interface = Interface("IFood", methods=[method])
     return interface
Example #16
0
 def create_walk():
     method = Method("walk")
     interface = Interface("IWalk", methods=[method])
     return interface
Example #17
0
 def create_attack():
     damage = Attribute("damage", "int", visibility=Visibility.public)
     method = Method("attack", parameters=[damage])
     interface = Interface("IAttack", methods=[method])
     return interface
Example #18
0
 def create_strategy():
     method = create_do_algorithm()
     strategy = Interface("Strategy", methods=[method])
     return strategy
Example #19
0
 def create_spell():
     method = Method("doEffect")
     interface = Interface("ISpell", methods=[method])
     return interface
Example #20
0
def test_single_name_interface():
    method = Method("test")
    interface_data = Interface("StrongName", methods=[method])
    file_name_java = FileNameToJava(interface_data)
    assert "StrongName.java" == file_name_java.get_file_name()