public void IndexerReturnNullIfKeyDoesntExist()
        {
            var dictionary  = new CultureDictionary("cs", _csPluralRule);
            var key         = new CultureDictionaryRecordKey("ball");
            var translation = dictionary[key];

            Assert.Null(translation);
        }
        public void IndexerThrowsPluralFormNotFoundExceptionIfSpecifiedPluralFormDoesntExist()
        {
            // Arrange
            var dictionary = new CultureDictionary("cs", _csPluralRule);
            var record     = new CultureDictionaryRecord("ball", "míč", "míče");

            dictionary.MergeTranslations(new[] { record });

            Assert.Throws <PluralFormNotFoundException>(() =>
            {
                var key = new CultureDictionaryRecordKey("ball");

                return(dictionary[key, 5]);
            });
        }
        public void GetDictionaryReturnsDictionaryWithTranslationsFromProvider()
        {
            var dictionaryRecord = new CultureDictionaryRecord("ball", "míč", "míče", "míčů");

            _translationProvider
            .Setup(o => o.LoadTranslations(It.Is <string>(culture => culture == "cs"), It.IsAny <CultureDictionary>()))
            .Callback <string, CultureDictionary>((culture, dictioanry) => dictioanry.MergeTranslations(new[] { dictionaryRecord }));
            var manager = new LocalizationManager(new[] { _pluralRuleProvider.Object }, new[] { _translationProvider.Object }, _memoryCache);

            var dictionary = manager.GetDictionary(new CultureInfo("cs"));
            var key        = new CultureDictionaryRecordKey("ball");

            dictionary.Translations.TryGetValue(key, out var translations);

            Assert.Equal(translations, dictionaryRecord.Translations);
        }