Example #1
0
 /// <summary>
 /// Sets the entry in the collection.
 /// </summary>
 protected override void OnExecute()
 {
     try
     {
         _previousValue = _collection.GetExactLanguage(_entry.Language);
     }
     catch (KeyNotFoundException)
     {}
     _collection.Set(_entry.Language, _entry.Value);
 }
        public void TestRemoveRange()
        {
            var dictionary = new LocalizableStringCollection
            {
                "neutralValue", {"de-DE", "germanyValue"},
                // Intential duplicates (should be ignored)
                "neutralValue", {"de-DE", "germanyValue"}
            };

            dictionary.Set(LocalizableString.DefaultLanguage, null);
            dictionary.ContainsExactLanguage(LocalizableString.DefaultLanguage).Should().BeFalse(because: "Unspecified language should default to English generic");
            dictionary.Set(new CultureInfo("de-DE"), null);
            dictionary.ContainsExactLanguage(new CultureInfo("de-DE")).Should().BeFalse();
        }
        public void TestSet()
        {
            var dictionary = new LocalizableStringCollection
            {
                "neutralValue",
                {"de-DE", "germanyValue"},
                // Intential duplicates (should be removed)
                "neutralValue",
                {"de-DE", "germanyValue"}
            };

            dictionary.Set(LocalizableString.DefaultLanguage, "neutralValue2");
            dictionary.Set(new CultureInfo("de-DE"), "germanyValue2");

            dictionary.GetExactLanguage(LocalizableString.DefaultLanguage).Should().Be("neutralValue2");
            dictionary.GetExactLanguage(new CultureInfo("de-DE")).Should().Be("germanyValue2");
        }
        public void TestGetBestLanguage()
        {
            var dictionary = new LocalizableStringCollection
            {
                {"de", "germanValue"},
                {"de-DE", "germanyValue"},
                {"en-US", "americaValue"},
                {"en-GB", "gbValue"},
                "neutralValue"
            };

            dictionary.GetBestLanguage(LocalizableString.DefaultLanguage).Should().Be("neutralValue", because: "Unspecified language should default to English generic");
            dictionary.GetBestLanguage(new CultureInfo("en-US")).Should().Be("americaValue");
            dictionary.GetBestLanguage(new CultureInfo("en-CA")).Should().Be("neutralValue", because: "No exact match, should fall back to English generic");
            dictionary.GetBestLanguage(new CultureInfo("en-GB")).Should().Be("gbValue");
            dictionary.GetBestLanguage(new CultureInfo("de")).Should().Be("germanValue");
            dictionary.GetBestLanguage(new CultureInfo("de-DE")).Should().Be("germanyValue", because: "No exact match, should fall back to German generic");
            dictionary.GetBestLanguage(new CultureInfo("de-AT")).Should().Be("germanValue", because: "No exact match, should fall back to German generic");
            dictionary.GetBestLanguage(new CultureInfo("es-ES")).Should().Be("neutralValue", because: "No match, should fall back to English generic");

            dictionary.Set(LocalizableString.DefaultLanguage, null);
            dictionary.GetBestLanguage(new CultureInfo("es-ES")).Should().Be("americaValue", because: "No English generic, should fall back to English US");

            dictionary.Set(new CultureInfo("en-US"), null);
            dictionary.GetBestLanguage(new CultureInfo("es-ES")).Should().Be("germanValue", because: "No English US, should fall back to first entry in collection");
        }