public void LanguageDecisionTests_CachingTest()
        {
            _mockLanguageParameterParser
            .Setup(expression: m => m.ParseLanguageParameter())
            .Returns(value: new LanguageParameter {
                IsPresent = false
            });

            _mockAppSettingsReader
            .SetupGet(m => m.DefaultLanguage)
            .Returns(value: "de");

            DecideLanguageResult actual = _systemUnderTest.DecideLanguage();

            Assert.NotNull(@object: actual);
            Assert.Equal(expected: "de", actual: actual.Language);

            actual = _systemUnderTest.DecideLanguage();
            Assert.NotNull(@object: actual);
            Assert.Equal(expected: "de", actual: actual.Language);

            _mockAppSettingsReader
            .VerifyGet(v => v.DefaultLanguage, Times.Once);
            _mockLanguageParameterParser
            .Verify(v => v.ParseLanguageParameter(), Times.Once);
        }
示例#2
0
        public DecideLanguageResult DecideLanguage()
        {
            if (_cache != null)
            {
                return(_cache);
            }

            string language = AppSettingsReader.DefaultLanguage;

            LanguageParameter languageParameter = LanguageParameterParser.ParseLanguageParameter();

            if (languageParameter.IsPresent)
            {
                language = languageParameter.Language;
            }

            if (language.IsFilled() &&
                !LanguageToCultureMapping.Mappings.ContainsKey(key: language))
            {
                Console.WriteLine(text: $"Language \"{language}\" not supported.");
                language = DefaultFallbackLanguage;
            }

            language = language.IsFilled() ? language : DefaultFallbackLanguage;
            return(_cache = new DecideLanguageResult
            {
                Language = language
            });
        }
示例#3
0
        public string GetResourceStringById(string resourceIdent)
        {
            DecideLanguageResult languageDecision = LanguageDecision.DecideLanguage();

            string mappedLanguageCulture = LanguageToCultureMapping.Mappings[key : languageDecision.Language];

            System.Globalization.CultureInfo currentCultureInfo = CultureInfo.GetCultureInfo(culture: mappedLanguageCulture);

            return(ResourceManager.GetString(
                       name: resourceIdent,
                       cultureInfo: currentCultureInfo));
        }
        public void LanguageDecisionTests_Parameter_is_present_and_language_de_expect_de()
        {
            _mockLanguageParameterParser
            .Setup(expression: m => m.ParseLanguageParameter())
            .Returns(value: new LanguageParameter {
                IsPresent = true, Language = "de"
            });

            DecideLanguageResult actual = _systemUnderTest.DecideLanguage();

            Assert.NotNull(@object: actual);
            Assert.Equal(expected: "de", actual: actual.Language);
        }
        public void LanguageDecisionTests_Parameter_is_not_present_and_app_settings_has_de_expect_de()
        {
            _mockLanguageParameterParser
            .Setup(expression: m => m.ParseLanguageParameter())
            .Returns(value: new LanguageParameter {
                IsPresent = false
            });

            _mockAppSettingsReader
            .SetupGet(m => m.DefaultLanguage)
            .Returns(value: "de");

            DecideLanguageResult actual = _systemUnderTest.DecideLanguage();

            Assert.NotNull(@object: actual);
            Assert.Equal(expected: "de", actual: actual.Language);
        }
        public void LanguageDecisionTests_Parameter_is_present_and_has_language_it_expect_en_and_console_not_supported_language()
        {
            _mockLanguageParameterParser
            .Setup(m => m.ParseLanguageParameter())
            .Returns(new LanguageParameter {
                IsPresent = true, Language = "it"
            });

            DecideLanguageResult actual = _systemUnderTest.DecideLanguage();

            Assert.NotNull(@object: actual);
            Assert.Equal("en", actual.Language);


            _mockConsole
            .Verify(v => v.WriteLine("Language \"it\" not supported."), Times.Once);
        }
        public void LanguageDecisionTests_appsetting_has_default_language_it_expect_en_and_console_not_supported_language()
        {
            _mockLanguageParameterParser
            .Setup(m => m.ParseLanguageParameter())
            .Returns(new LanguageParameter {
                IsPresent = false
            });

            _mockAppSettingsReader
            .SetupGet(m => m.DefaultLanguage)
            .Returns("it");

            DecideLanguageResult actual = _systemUnderTest.DecideLanguage();

            Assert.NotNull(@object: actual);
            Assert.Equal("en", actual.Language);

            _mockConsole
            .Verify(v => v.WriteLine("Language \"it\" not supported."), Times.Once);
        }