def test_parameter__no_link(empty_generating_api): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "arg" helper = TemplateHelper(empty_generating_api) assert helper.parameter(param, link=False) == "const MyType & arg"
def test_print_ref__no_link__empty_closure(api_mock): return_type = TypeRef("lang") return_type.name = "MyType" return_type.prefix = "const " return_type.suffix = " &" return_type.id = "lang-tomtom_1_MyType" ref = TypeRef("lang") ref.args = [] ref.returns = return_type helper = TemplateHelper(api_mock) assert helper.print_ref(ref, link=False) == "const MyType &()"
def test_parameter__no_name(empty_generating_api): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "" helper = TemplateHelper(empty_generating_api) assert helper.parameter( param) == "const xref:lang-tomtom_1_MyType[++MyType++] &"
def test_method_signature__single_param__too_wide(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, max_width=20) == """\ void ShortMethod( int value)""")
def test_parameter__default_value(empty_generating_api): ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" param = Parameter() param.type = ref param.name = "arg" param.default_value = "12" helper = TemplateHelper(empty_generating_api) assert helper.parameter( param, default_value=True ) == "const xref:lang-tomtom_1_MyType[++MyType++] & arg = 12"
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_print_ref__link__empty_closure(api_mock): return_type = TypeRef("lang") return_type.name = "MyType" return_type.prefix = "const " return_type.suffix = " &" return_type.id = "lang-tomtom_1_MyType" ref = TypeRef("lang") ref.args = [] ref.returns = return_type helper = TemplateHelper(api_mock) assert helper.print_ref( ref) == "const xref:lang-tomtom_1_MyType[++MyType++] &()" api_mock.link_to_element.assert_called_once_with(return_type.id, return_type.name)
def test_print_ref__no_link__nested_types(api_mock): nested_type_with_id = TypeRef("lang") nested_type_with_id.name = "Nested1" nested_type_with_id.id = "lang-nested1" nested_type_without_id = TypeRef("lang") nested_type_without_id.name = "Nested2" ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" ref.nested = [nested_type_with_id, nested_type_without_id] helper = TemplateHelper(api_mock) assert helper.print_ref(ref, link=False) == "const MyType<Nested1, Nested2> &"
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_print_ref__link__nested_types(api_mock): nested_type_with_id = TypeRef("lang") nested_type_with_id.name = "Nested1" nested_type_with_id.id = "lang-nested1" nested_type_without_id = TypeRef("lang") nested_type_without_id.name = "Nested2" ref = TypeRef("lang") ref.name = "MyType" ref.prefix = "const " ref.suffix = " &" ref.id = "lang-tomtom_1_MyType" ref.nested = [nested_type_with_id, nested_type_without_id] helper = TemplateHelper(api_mock) assert ( helper.print_ref(ref) == "const xref:lang-tomtom_1_MyType[++MyType++]<xref:lang-nested1[++Nested1++], " "Nested2> &") api_mock.link_to_element.assert_has_calls([ call(nested_type_with_id.id, nested_type_with_id.name), call(ref.id, ref.name) ])
def test_print_ref__link__none(api_mock): helper = TemplateHelper(api_mock) assert helper.print_ref(None) == "" api_mock.link_to_element.assert_not_called()
def test_print_ref__no_link__name_only(api_mock): ref = TypeRef("lang") ref.name = "MyType" ref.id = "lang-mytype" helper = TemplateHelper(api_mock) assert helper.print_ref(ref, link=False) == "MyType"
def test_print_ref__no_link__none(api_mock): helper = TemplateHelper(api_mock) assert helper.print_ref(None, link=False) == ""
def helper(empty_generating_api, cpp_class): return TemplateHelper(empty_generating_api, cpp_class, InsertionFilter())
def test_print_ref__link__empty(api_mock): ref = TypeRef("lang") helper = TemplateHelper(api_mock) assert helper.print_ref(ref) == "" api_mock.link_to_element.assert_not_called()
def test_argument_list__empty(empty_generating_api): helper = TemplateHelper(empty_generating_api) assert helper.argument_list([]) == "()"
def test_print_ref__no_link__empty(api_mock): ref = TypeRef("lang") helper = TemplateHelper(api_mock) assert helper.print_ref(ref, link=False) == ""
def test_print_ref__link__name_only(api_mock): ref = TypeRef("lang") ref.name = "MyType" helper = TemplateHelper(api_mock) assert helper.print_ref(ref) == "MyType" api_mock.link_to_element.assert_not_called()