Пример #1
0
        public void ShouldReturnLocalizedStringAfrerSwitchingFromNonExistentCulture()
        {
            // Arrange.
            const string name               = "TestString";
            CultureInfo  existingCulture    = new("es-MX");
            CultureInfo  nonExistentCulture = new("ru-RU");
            const string localizedString    = "Test string";

            Mock <ResourceManager> resourceManagerMock = new Mock <ResourceManager>();

            resourceManagerMock
            .Setup(resourceManager => resourceManager.GetString(name, existingCulture))
            .Returns(localizedString);
            resourceManagerMock
            .Setup(resourceManager => resourceManager.GetString(name, nonExistentCulture))
            .Throws <MissingManifestResourceException>();
            using SessionCultureResourceManagerStringLocalizer localizer = GetLocalizer(resourceManagerMock.Object);

            // Act.
            ChangeCulture(nonExistentCulture);
            LocalizedString LocalizedStringForNonExistentCulture = localizer[name];

            ChangeCulture(existingCulture);
            LocalizedString LocalizedStringForNonExistingCulture = localizer[name];

            // Assert.
            Assert.AreEqual(name, LocalizedStringForNonExistentCulture.Value);
            Assert.AreEqual(localizedString, LocalizedStringForNonExistingCulture.Value);
        }
Пример #2
0
        public void ReturnsLocalizedStringNameByNameForChangedCultureAndNonexistentResourceString()
        {
            // Arrange.
            const string name            = "TestString";
            CultureInfo  culture         = new("es-MX");
            const string?localizedString = null;

            ChangeCulture(culture);
            using SessionCultureResourceManagerStringLocalizer localizer = GetLocalizer(name, culture, localizedString);

            // Act.
            LocalizedString actual = localizer[name];

            // Assert.
            Assert.AreEqual(name, actual.Value);
        }
Пример #3
0
        public void ThrowsArgumentNullExceptionByNameIfNameIsNull()
        {
            // Arrange.
            const string?name = null;

            using SessionCultureResourceManagerStringLocalizer localizer = GetLocalizer();

            // Act.
            void act()
            {
#pragma warning disable CS8625 // Литерал, равный NULL, не может быть преобразован в ссылочный тип, не допускающий значение NULL.
                LocalizedString actual = localizer[name];
#pragma warning restore CS8625 // Литерал, равный NULL, не может быть преобразован в ссылочный тип, не допускающий значение NULL.
            };

            // Assert.
            Assert.ThrowsException <ArgumentNullException>(act);
        }
Пример #4
0
        public void ReturnsLocalizedStringNameByNameWithParamsForChangedCultureAndNonexistentResourceString()
        {
            // Arrange.
            const string name            = "TestString {0}";
            CultureInfo  culture         = new("es-MX");
            const string?localizedString = null;
            const int    param           = 0;
            const string expected        = "TestString 0";

            using SessionCultureResourceManagerStringLocalizer localizer = GetLocalizer(name, culture, localizedString);
            ChangeCulture(culture);

            // Act.
            LocalizedString actual = localizer[name, param];

            // Assert.
            Assert.AreEqual(expected, actual.Value);
        }