示例#1
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
def test_class_equal():
    method1 = Method("a")
    method2 = Method("a")
    a = ClassData("a", methods=[method1])
    b = ClassData("a", methods=[method2])
    output = a == b
    assert output == True
示例#3
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
示例#4
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
示例#5
0
def test_method_not_equal_param():
    parameter1 = Attribute("b", "int")
    parameter2 = Attribute("a", "int")
    a = Method("a", parameters=[parameter1])
    b = Method("a", parameters=[parameter2])
    output = (a == b)
    assert output == False
def test_class_data_not_equal_name():
    method1 = Method("a")
    method2 = Method("a")
    a = ClassData("a", methods=[method1])
    b = ClassData("b", methods=[method2])
    output = a == b
    assert output == False
def test_formatted_methods():
    method1 = Method("example")
    method2 = Method("example2")
    method_to_java = MethodToJava([method1, method2], True)
    assert method_to_java.get_formatted_methods() == (
        f"\tpublic void example();"
        f"\n\n\tpublic void"
        f" example2();")
def test_class_data_diffent_method_number():
    method1 = Method("a")
    method2 = Method("a")
    method3 = Method("b")
    a = ClassData("a", methods=[method1])
    b = ClassData("a", methods=[method2, method3])
    output = a == b
    assert output == False
示例#9
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
def test_formatted_methods():
    method1 = Method("example")
    method2 = Method("example2")
    method_to_python = MethodToPython([method1, method2], False)
    expected_one = (f"\tdef example(self):\n"
                    f"\t\tpass")
    expected_two = (f"\tdef example2(self):\n"
                    f"\t\tpass")
    assert method_to_python.get_formatted_methods() == expected_one + "\n\n" + expected_two
def test_class_data_not_equal_method():
    method1 = Method("a")
    method2 = Method("a")
    method3 = Method("b")
    method4 = Method("c")
    a = ClassData("a", methods=[method1, method4])
    b = ClassData("a", methods=[method2, method3])
    output = a == b
    assert output == False
示例#12
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
def test_class_data_methods_unordered():
    method1 = Method("a")
    method2 = Method("a")
    method3 = Method("b")
    method4 = Method("b")
    a = ClassData("a", methods=[method1, method4])
    b = ClassData("a", methods=[method3, method2])
    output = a == b
    assert output == False
示例#14
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
示例#15
0
def test_method_params_unordered():
    parameter1 = Attribute("a", "int")
    parameter2 = Attribute("a", "int")
    parameter3 = Attribute("b", "int")
    parameter4 = Attribute("b", "int")
    a = Method("a", parameters=[parameter1, parameter3])
    b = Method("a", parameters=[parameter4, parameter2])
    output = (a == b)
    assert output == False
示例#16
0
def test_method_equal_params():
    parameter1 = Attribute("a", "int")
    parameter2 = Attribute("a", "int")
    parameter3 = Attribute("b", "int")
    parameter4 = Attribute("b", "int")
    a = Method("a", parameters=[parameter1, parameter3])
    b = Method("a", parameters=[parameter2, parameter4])
    output = (a == b)
    assert output == True
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_classes_returned_read_xml():
    examples_folder = path.abspath(
        path.join(__file__, "../../../src/xmlToData/uml_samples/uml1.xml"))
    class_ = ClassData("Humano", [
        Attribute("idade", "int", Visibility.public),
        Attribute("anos", "float", Visibility.private)
    ], [
        Method("get_idade", "int",
               [Attribute("nome", "string"),
                Attribute("altura", "double")], Visibility.public),
        Method("get_anos", "float", [], Visibility.private)
    ])
    list_of_classes, list_of_interfaces = DrawIoXmlParser(
        examples_folder).read_xml()
    assert list_of_classes[0] == class_
示例#19
0
    def create_weapon():
        name = Attribute("name", "str", visibility=Visibility.public)
        age = Attribute("age", "int", visibility=Visibility.private)
        attribute = Attribute("attribute",
                              "Attribute",
                              visibility=Visibility.protected)

        getAttribute = Method("getAttribute", return_type="Attribute")
        setAttribute = Method("setAttribute",
                              return_type="void",
                              parameters=[attribute])
        weapon = ClassData("Weapon",
                           methods=[getAttribute, setAttribute],
                           fields=[name, age, attribute])
        return weapon
示例#20
0
def test_java_example_1():
    att1 = Attribute("name", "String", Visibility.public)
    att2 = Attribute("age", "int", Visibility.private)

    method1 = Method("bark", "void", [], Visibility.public)
    param1 = Attribute("byAge", "int", Visibility.public)
    method2 = Method("growUp", "bool", [param1], Visibility.private)
    dog_class = ClassData("Dog", [att1, att2], [method1, method2])

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

    result = ClassToJava(dog_class).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_
示例#22
0
 def create_context():
     attribute = Attribute("strategy",
                           "Strategy",
                           visibility=Visibility.public)
     method = Method("doSomeBusinessLogic")
     context = ClassData("Context", methods=[method], fields=[attribute])
     return context
def test_static_protected_method_with_parameters():
    param = Attribute("name", "String")
    method = Method("example", "int", [param],
                    Visibility.protected, Modifier.static)
    method_to_python = MethodToPython([method], False)
    expected = "\t@staticmethod\n\tdef _example(name):\n\t\tpass"
    assert method_to_python.get_formatted_methods() == expected
示例#24
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_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
示例#26
0
    def create_fat_orc():
        food = Attribute("food", "IFood", visibility=Visibility.public)

        eat = Method("eat", parameters=[food])

        orc = create_orc()

        fat_orc = ClassData("FatOrc", methods=[eat], inheritances=[orc])
        return fat_orc
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_formatted_method_parameters(parameters, expected):
    parameter_list: List[Attribute] = []
    for parameter in parameters:
        name, return_type = parameter
        new_parameter = Attribute(name, return_type)
        parameter_list.append(new_parameter)

    method = Method("example", parameters=parameter_list)
    method_to_python = MethodToPython([method], False)
    assert method_to_python.get_formatted_methods() == expected
示例#29
0
    def create_orc():
        name = Attribute("name", "str", visibility=Visibility.public)
        age = Attribute("age", "int", visibility=Visibility.private)
        damage = Attribute("damage", "int", visibility=Visibility.public)
        hours = Attribute("hours", "int", visibility=Visibility.public)

        walk = create_walk()
        attack_interface = create_attack()

        attack_method = Method("attack", parameters=[damage])
        sleep = Method("sleep",
                       parameters=[hours],
                       visibility=Visibility.private)

        orc = ClassData("Orc",
                        methods=[attack_method, sleep],
                        fields=[name, age],
                        implementations=[attack_interface, walk])
        return orc
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