def test_objc_method_signature__class_method(helper): method = Compound("objc") method.name = "start" method.static = True method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="void") assert helper.method_signature(method) == "+ (void)start"
def test_objc_method_signature__multiple_params_linked_return(helper): method = Compound("objc") method.name = "setValue:withUnit:andALongerParam:" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") param2 = Parameter() param2.name = "arg2" param2.type = TypeRef("objc", "Type2") param2.type.id = "objc-type2" param3 = Parameter() param3.name = "arg3" param3.type = TypeRef("objc", "Type3") method.params = [param1, param2, param3] assert (helper.method_signature(method) == """\ - (xref:objc-value[++Value++])setValue:(Type1)arg1 withUnit:(xref:objc-type2[++Type2++])arg2 andALongerParam:(Type3)arg3""")
def test_method_signature__no_params_simple_return__throws(helper): method = Compound("swift") method.name = "start" method.returns = ReturnValue() method.returns.type = TypeRef("swift", name="Int") method.exceptions = [ThrowsClause("swift")] assert helper.method_signature(method) == "func start() throws -> Int"
def test_method_signature__no_params_link_return(helper): method = Compound("swift") method.name = "retrieveValue" method.returns = ReturnValue() method.returns.type = TypeRef("swift", name="Value") method.returns.type.id = "swift-value" assert (helper.method_signature(method) == "func retrieveValue() -> xref:swift-value[++Value++]")
def test_method_signature(helper): method = Compound("cpp") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("cpp", "void") assert helper.method_signature(method) == "void ShortMethod()"
def test_method_signature__no_params_link_return(helper): method = Compound("kotlin") method.name = "retrieveValue" method.returns = ReturnValue() method.returns.type = TypeRef("kotlin", name="Value") method.returns.type.id = "kotlin-value" assert helper.method_signature( method) == "fun retrieveValue(): xref:kotlin-value[++Value++]"
def test_method_signature__no_params(helper): method = Compound("python") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("python", "None") assert helper.method_signature(method) == "def ShortMethod() -> None"
def test_objc_method_signature__no_params_link_return(helper): method = Compound("objc") method.name = "retrieveValue" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" assert helper.method_signature( method) == "- (xref:objc-value[++Value++])retrieveValue"
def test_method_signature__no_params_link_return__throws(helper): method = Compound("swift") method.name = "retrieveValue" method.returns = ReturnValue() method.returns.type = TypeRef("swift", name="Value") method.returns.type.id = "swift-value" method.exceptions = [ThrowsClause("swift")] assert (helper.method_signature(method) == "func retrieveValue() throws -> xref:swift-value[++Value++]")
def test_method_signature__no_params(empty_generating_api): method = Compound("lang") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("lang", "void") helper = TemplateHelper(empty_generating_api) assert helper.method_signature(method) == "void ShortMethod()"
def test_closure_definition__no_params__void_return(helper): closure = Compound("swift") closure.name = "SuccessClosure" closure.returns = ReturnValue() closure.returns.type = TypeRef("swift", name="Void") closure.returns.type.args = [] assert helper.closure_definition( closure) == "typealias SuccessClosure = () -> Void"
def test_closure_definition__no_params__return_type(helper): closure = Compound("swift") closure.name = "SuccessClosure" closure.returns = ReturnValue() closure.returns.type = TypeRef("swift", name="Data") closure.returns.type.id = "swift-data" closure.returns.type.args = [] assert (helper.closure_definition(closure) == "typealias SuccessClosure = () -> xref:swift-data[++Data++]")
def test_closure_definition__multiple_params_type_only__void_return(helper): closure = Compound("swift") closure.name = "SuccessClosure" closure.returns = ReturnValue() closure.returns.type = TypeRef("swift", name="Void") closure.returns.type.args = [Parameter(), Parameter()] closure.returns.type.args[0].type = TypeRef("swift", "int") closure.returns.type.args[1].type = TypeRef("swift", "Data") closure.returns.type.args[1].type.id = "swift-data" assert ( helper.closure_definition(closure) == "typealias SuccessClosure = (int, xref:swift-data[++Data++]) -> Void")
def test_method_signature__single_param(helper): method = Compound("python") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("python", "int") method.params = [Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("python", "int") assert helper.method_signature( method) == "def ShortMethod(value: int) -> int"
def test_method_signature__one_param(helper): method = Compound("swift") method.name = "setValue" method.returns = ReturnValue() method.returns.type = TypeRef("swift", name="Value") param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") method.params = [param1] assert helper.method_signature( method) == "func setValue(arg1: Type1) -> Value"
def test_method_signature__single_param(empty_generating_api): method = Compound("lang") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("lang", "void") method.params = [Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("lang", "int") helper = TemplateHelper(empty_generating_api) assert helper.method_signature(method) == "void ShortMethod(int value)"
def test_method_signature__single_param__too_wide(helper): method = Compound("python") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("python", "str") method.params = [Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("python", "int") assert (helper.method_signature(method, max_width=20) == """\ def ShortMethod( value: int) -> str""")
def test_objc_method_signature__one_param(helper): method = Compound("objc") method.name = "setValue:" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="Value") method.returns.type.id = "objc-value" param1 = Parameter() param1.name = "arg1" param1.type = TypeRef("objc", "Type1") method.params = [param1] assert helper.method_signature( method) == "- (xref:objc-value[++Value++])setValue:(Type1)arg1"
def test_method_signature__ignore_param_type_xref_length(helper): method = Compound("python") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("python", "None") method.params = [Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("python", "int") method.params[0].type.id = "ab" * 80 assert (helper.method_signature(method) == f"def ShortMethod(value: xref:{'ab' * 80}[++int++]) -> None")
def test_method_signature__ignore_param_type_xref_length(empty_generating_api): method = Compound("lang") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("lang", "void") method.params = [Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("lang", "int") method.params[0].type.id = "ab" * 80 helper = TemplateHelper(empty_generating_api) assert (helper.method_signature(method) == f"void ShortMethod(xref:{'ab' * 80}[++int++] " "value)")
def test_method_signature__multiple_params(helper): method = Compound("python") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("python", "None") method.params = [Parameter(), Parameter(), Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("python", "int") method.params[1].name = "other_value" method.params[1].type = TypeRef("python", "float") method.params[2].name = "text" method.params[2].type = TypeRef("python", "str") assert (helper.method_signature(method) == """\ def ShortMethod(value: int, other_value: float, text: str) -> None""")
def test_method_signature__multiple_params(empty_generating_api): method = Compound("lang") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("lang", "void") method.params = [Parameter(), Parameter(), Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("lang", "int") method.params[1].name = "other_value" method.params[1].type = TypeRef("lang", "double") method.params[2].name = "text" method.params[2].type = TypeRef("lang", "std::string") helper = TemplateHelper(empty_generating_api) assert (helper.method_signature(method) == """\ void ShortMethod(int value, double other_value, std::string text)""")
def test_method_signature__multiple_params__last_param_too_wide(helper): method = Compound("python") method.name = "ShortMethod" method.returns = ReturnValue() method.returns.type = TypeRef("python", "Type") method.params = [Parameter(), Parameter(), Parameter()] method.params[0].name = "value" method.params[0].type = TypeRef("python", "int") method.params[1].name = "other_value" method.params[1].type = TypeRef("python", "float") method.params[2].name = "text" * 10 method.params[2].type = TypeRef("python", "str") assert (helper.method_signature(method, max_width=40) == f"""\ def ShortMethod( value: int, other_value: float, {"text" * 10}: str) -> Type""")
def test_method_signature__no_params_simple_return(helper): method = Compound("swift") method.name = "start" method.returns = ReturnValue() method.returns.type = TypeRef("swift", name="Int") assert helper.method_signature(method) == "func start() -> Int"
def test_objc_method_signature__no_params_simple_return(helper): method = Compound("objc") method.name = "start" method.returns = ReturnValue() method.returns.type = TypeRef("objc", name="void") assert helper.method_signature(method) == "- (void)start"