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_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_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_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
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_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_
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
def create_food(): method = Method("getNutrients", return_type="str") interface = Interface("IFood", methods=[method]) return interface
def create_walk(): method = Method("walk") interface = Interface("IWalk", methods=[method]) return interface
def create_attack(): damage = Attribute("damage", "int", visibility=Visibility.public) method = Method("attack", parameters=[damage]) interface = Interface("IAttack", methods=[method]) return interface
def create_strategy(): method = create_do_algorithm() strategy = Interface("Strategy", methods=[method]) return strategy
def create_spell(): method = Method("doEffect") interface = Interface("ISpell", methods=[method]) return interface
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()