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
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
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
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
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
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
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_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
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_
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
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_
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
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
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
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