public async Task ReservedKeywordIsPrefixed() { const string method_name = "TestMethod"; const string key_name = "TestKey"; const string english_text = "TestEnglish{0}{1}{2}"; var param1 = new LocalisationParameter("int", "new"); await setupLocalisation(new LocalisationMember(method_name, key_name, english_text, param1)); checkResult($@" /// <summary> /// ""{english_text}"" /// </summary> public static LocalisableString {method_name}({param1.Type} @{param1.Name}) => new TranslatableString(getKey(@""{key_name}""), @""{english_text}"", @{param1.Name}); "); }
public async Task MethodIsGeneratedFromParameters() { const string method_name = "TestMethod"; const string key_name = "TestKey"; const string english_text = "TestEnglish{0}{1}{2}"; var param1 = new LocalisationParameter("int", "first"); var param2 = new LocalisationParameter("string", "second"); var param3 = new LocalisationParameter("customobj", "third"); await setupLocalisation(new LocalisationMember(method_name, key_name, english_text, param1, param2, param3)); await checkResult($@" /// <summary> /// ""{english_text}"" /// </summary> public static LocalisableString {method_name}({param1.Type} {param1.Name}, {param2.Type} {param2.Name}, {param3.Type} {param3.Name}) => new TranslatableString(getKey(@""{key_name}""), @""{english_text}"", {param1.Name}, {param2.Name}, {param3.Name}); "); }
public async Task CheckMethodMemberIsReadCorrectly() { const string method_name = "TestMethod"; const string key_name = "TestKey"; const string english_text = "TestEnglish{0}{1}{2}"; var param1 = new LocalisationParameter("int", "first"); var param2 = new LocalisationParameter("string", "second"); var param3 = new LocalisationParameter("customobj", "third"); var localisation = await setupFile($@"{SyntaxTemplates.FILE_HEADER_SIGNATURE} namespace {test_namespace} {{ public static class TestClass {{ private const string prefix = ""{test_namespace}.{test_class_name}""; /// <summary> /// ""{english_text}"" /// </summary> public static LocalisableString {method_name}({param1.Type} {param1.Name}, {param2.Type} {param2.Name}, {param3.Type} {param3.Name}) => new TranslatableString(getKey(""{key_name}""), ""{english_text}"", {param1.Name}, {param2.Name}, {param3.Name}); private static string getKey(string key) => $""{{prefix}}:{{key}}""; }} }}"); Assert.Single(localisation.Members); Assert.Equal(method_name, localisation.Members[0].Name); Assert.Equal(key_name, localisation.Members[0].Key); Assert.Equal(english_text, localisation.Members[0].EnglishText); Assert.Equal(3, localisation.Members[0].Parameters.Length); Assert.Equal(param1, localisation.Members[0].Parameters[0]); Assert.Equal(param2, localisation.Members[0].Parameters[1]); Assert.Equal(param3, localisation.Members[0].Parameters[2]); }