[Test] public void CascadedTemplate () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Report2", "Report {Plural'1}/{Plural'2}"); Assert.AreEqual("Report Scopes/Storys", loc.Resolve("Report2'Scope'Story")); }
[Test] public void ConditionalSpaceYes() { Localizer loc = new Localizer(null); loc.Add("A", "x {1}"); loc.Add("B", "y"); Assert.AreEqual("x y", loc.Resolve("A'B")); }
[Test] public void BracesNest() { Localizer loc = new Localizer(null); loc.Add("match", "open {{{and}}} close"); loc.Add("and", "xyz"); Assert.AreEqual("open {xyz} close", loc.Resolve("match")); }
[Test] public void MatchingDoubleBrace() { Localizer loc = new Localizer(null); loc.Add("match", "open {{and}} close"); loc.Add("and", "xyz"); Assert.AreEqual("open {and} close", loc.Resolve("match")); }
[Test] public void PluralAssocTemplate () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'AssetType", "{Plural'{1'2}'}"); loc.Add("AssetType'Fronat", "Memo"); Assert.AreEqual("Memos", loc.Resolve("Plural'AssetType'Fronat")); }
[Test] public void AlwaysExpandCascaded() { Localizer loc = new Localizer(null); loc.Add("Add'Story", "Add {Story}"); loc.Add("Story", "Backlog Item"); Assert.AreEqual("Add Backlog Item", loc.Resolve("Add'Story")); }
[Test] public void PluralNestTemplate () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'AssetType", "{Plural'{1'2}'x}"); loc.Add("AssetType'Story", "Backlog Item"); Assert.AreEqual("Backlog Items", loc.Resolve("Plural'AssetType'Story")); }
[Test] public void TemplateOverride () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'Story", "Stories"); Assert.AreEqual("Scopes", loc.Resolve("Plural'Scope")); Assert.AreEqual("Stories", loc.Resolve("Plural'Story")); }
[Test] public void CascadedTemplate() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Report2", "Report {Plural'1}/{Plural'2}"); Assert.AreEqual("Report Scopes/Storys", loc.Resolve("Report2'Scope'Story")); }
[Test] public void DoubleBrace() { Localizer loc = new Localizer(null); loc.Add("open", "open {{ brace"); loc.Add("close", "close }} brace"); Assert.AreEqual("open { brace", loc.Resolve("open")); Assert.AreEqual("close } brace", loc.Resolve("close")); }
[Test] public void AlwaysExpandSubstitution() { Localizer loc = new Localizer(null); loc.Add("Add", "Add {1}"); loc.Add("Story", "Backlog Item"); loc.Add("Backlog Item", "bogus"); Assert.AreEqual("Add Backlog Item", loc.Resolve("Add'Story")); }
[Test] public void TemplateOverride() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'Story", "Stories"); Assert.AreEqual("Scopes", loc.Resolve("Plural'Scope")); Assert.AreEqual("Stories", loc.Resolve("Plural'Story")); }
[Test] public void PluralAssocTemplate() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'AssetType", "{Plural'{1'2}'}"); loc.Add("AssetType'Fronat", "Memo"); Assert.AreEqual("Memos", loc.Resolve("Plural'AssetType'Fronat")); }
[Test] public void PluralNestTemplate() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'AssetType", "{Plural'{1'2}'x}"); loc.Add("AssetType'Story", "Backlog Item"); Assert.AreEqual("Backlog Items", loc.Resolve("Plural'AssetType'Story")); }
[Test] public void ComplexTemplate () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'Story", "Stories"); loc.Add("Report2", "Report {Plural'1}/{Plural'2}"); loc.Add("Scope", "Project"); Assert.AreEqual("Report Projects/Stories", loc.Resolve("Report2'Scope'Story")); }
[Test] public void ComplexTemplate() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); loc.Add("Plural'Story", "Stories"); loc.Add("Report2", "Report {Plural'1}/{Plural'2}"); loc.Add("Scope", "Project"); Assert.AreEqual("Report Projects/Stories", loc.Resolve("Report2'Scope'Story")); }
[Test] public void AlwaysExpand() { Localizer loc = new Localizer(null); loc.Add("Add'Story", "Add {Story}"); Assert.AreEqual("Add Story", loc.Resolve("Add'Story")); }
[Test] public void EmptyBraces() { Localizer loc = new Localizer(null); loc.Add("A", "{}"); Assert.AreEqual("", loc.Resolve("A")); }
[Test] public void PluralTemplate() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); Assert.AreEqual("AssetTypes", loc.Resolve("Plural'AssetType'Story")); }
[Test] public void SimpleTemplate() { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); Assert.AreEqual("Storys", loc.Resolve("Plural'Story")); }
[Test] public void SimpleTranslate() { Localizer loc = new Localizer(null); loc.Add("tag1", "This is the tag 1 string"); Assert.AreEqual("This is the tag 1 string", loc.Resolve("tag1")); }
[Test] public void NoInfiniteRecursion() { Localizer loc = new Localizer(null); loc.Add("bogus", "recursive {0} recursive"); Assert.AreEqual("recursive bogus recursive", loc.Resolve("bogus")); }
public void Test005() { // Arrange var headerKey = "alert-heading"; var localizer = new Localizer() { CultureCode = "Yoda" }; localizer.Add(headerKey, "Time to focus on Blazor it is."); // Act var cut = RenderComponent <Alert>( (nameof(Alert.Header), headerKey), CascadingValue(localizer) ); // Assert var expected = cut.Find(".alert-heading").TextContent; Assert.Equal(localizer[headerKey], expected); var expectedMarkup = $@"<h4 class=""alert-heading"">{localizer[headerKey]}</h4>"; cut.Find(".alert-heading").MarkupMatches(expectedMarkup); }
[Test] public void ValueWithSpecialCharacter() { const string tag = "solution"; const string translation = "løsningsforslag"; var loc = new Localizer(null); loc.Add(tag, translation); Assert.AreEqual(translation, loc.Resolve(tag)); }
public void SignaturesAreUniqueBasedOnKeysAndValues() { Localizer loc = new Localizer(null); loc.Add("tag1", "This is the tag 1 string"); Localizer loc2 = new Localizer(null); loc2.Add("tag1This is the tag 1 string", ""); Assert.AreNotEqual(loc.Signature, loc2.Signature); }
public void SignaturesAreStable() { Localizer loc = new Localizer(null); loc.Add("tag1", "This is the tag 1 string"); Localizer loc2 = new Localizer(null); loc2.Add("tag1", "This is the tag 1 string"); Assert.AreEqual(loc.Signature, loc2.Signature); }
public void LocalizersWithDifferentFallbacksHaveUniqueSignatures() { Localizer fallback = new Localizer(null); fallback.Add("fallback", "fallback string"); Localizer loc = new Localizer(fallback); loc.Add("tag1", "This is the tag 1 string"); Localizer fallback2 = new Localizer(null); fallback2.Add("fallback2", "fallback2 string"); Localizer loc2 = new Localizer(null); loc2.Add("tag1", "This is the tag 1 string"); Assert.AreNotEqual(loc.Signature, loc2.Signature); }
[Test] public void ConditionalSpaceYes () { Localizer loc = new Localizer(null); loc.Add("A", "x {1}"); loc.Add("B", "y"); Assert.AreEqual("x y", loc.Resolve("A'B")); }
[Test] public void AlwaysExpandCascaded () { Localizer loc = new Localizer(null); loc.Add("Add'Story", "Add {Story}"); loc.Add("Story", "Backlog Item"); Assert.AreEqual("Add Backlog Item", loc.Resolve("Add'Story")); }
[Test] public void AlwaysExpand () { Localizer loc = new Localizer(null); loc.Add("Add'Story", "Add {Story}"); Assert.AreEqual("Add Story", loc.Resolve("Add'Story")); }
[Test] public void AlwaysExpandSubstitution () { Localizer loc = new Localizer(null); loc.Add("Add", "Add {1}"); loc.Add("Story", "Backlog Item"); loc.Add("Backlog Item", "bogus"); Assert.AreEqual("Add Backlog Item", loc.Resolve("Add'Story")); }
[Test] public void NoInfiniteRecursion () { Localizer loc = new Localizer(null); loc.Add("bogus", "recursive {0} recursive"); Assert.AreEqual("recursive bogus recursive", loc.Resolve("bogus")); }
[Test] public void SimpleTranslate () { Localizer loc = new Localizer(null); loc.Add("tag1", "This is the tag 1 string"); Assert.AreEqual("This is the tag 1 string", loc.Resolve("tag1")); }
[Test] public void PluralTemplate () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); Assert.AreEqual("AssetTypes", loc.Resolve("Plural'AssetType'Story")); }
[Test] public void SimpleTemplate () { Localizer loc = new Localizer(null); loc.Add("Plural", "{1}s"); Assert.AreEqual("Storys", loc.Resolve("Plural'Story")); }
[Test] public void BracesNest () { Localizer loc = new Localizer(null); loc.Add("match", "open {{{and}}} close"); loc.Add("and", "xyz"); Assert.AreEqual("open {xyz} close", loc.Resolve("match")); }
[Test] public void MatchingDoubleBrace () { Localizer loc = new Localizer(null); loc.Add("match", "open {{and}} close"); loc.Add("and", "xyz"); Assert.AreEqual("open {and} close", loc.Resolve("match")); }
[Test] public void DoubleBrace () { Localizer loc = new Localizer(null); loc.Add("open", "open {{ brace"); loc.Add("close", "close }} brace"); Assert.AreEqual("open { brace", loc.Resolve("open")); Assert.AreEqual("close } brace", loc.Resolve("close")); }