Added tests for localization

pull/892/head
Halil ibrahim Kalkan 7 years ago
parent e1ea96a829
commit 671d10867d

@ -26,7 +26,10 @@ namespace Volo.Abp.Localization
public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures)
{
return GetAllStrings(CultureInfo.CurrentUICulture.Name, includeParentCultures);
return GetAllStrings(
CultureInfo.CurrentUICulture.Name,
includeParentCultures
);
}
public IStringLocalizer WithCulture(CultureInfo culture)
@ -109,7 +112,9 @@ namespace Volo.Abp.Localization
return null;
}
protected virtual IReadOnlyList<LocalizedString> GetAllStrings(string cultureName, bool includeParentCultures = true)
protected virtual IReadOnlyList<LocalizedString> GetAllStrings(
string cultureName,
bool includeParentCultures = true)
{
//TODO: Can be optimized (example: if it's already default dictionary, skip overriding)

@ -1,4 +1,5 @@
using System.Globalization;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Shouldly;
@ -104,6 +105,46 @@ namespace Volo.Abp.Localization
_localizer.WithCulture(CultureInfo.GetCultureInfo("tr"))["CarPlural"].Value.ShouldBe("Araba");
}
[Fact]
public void GetAllStrings_With_Parents()
{
using (AbpCultureHelper.Use("tr"))
{
var localizedStrings = _localizer.GetAllStrings(true).ToList();
localizedStrings.ShouldContain(
ls => ls.Name == "FortyTwo" &&
ls.Value == "Forty Two" &&
ls.ResourceNotFound == false
);
localizedStrings.ShouldContain(
ls => ls.Name == "Universe" &&
ls.Value == "Evren" &&
ls.ResourceNotFound == false
);
}
}
[Fact]
public void GetAllStrings_Without_Parents()
{
using (AbpCultureHelper.Use("tr"))
{
var localizedStrings = _localizer.GetAllStrings(false).ToList();
localizedStrings.ShouldNotContain(
ls => ls.Name == "FortyTwo"
);
localizedStrings.ShouldContain(
ls => ls.Name == "Universe" &&
ls.Value == "Evren" &&
ls.ResourceNotFound == false
);
}
}
[DependsOn(typeof(AbpTestBaseModule))]
[DependsOn(typeof(AbpLocalizationModule))]
public class TestModule : AbpModule
@ -117,10 +158,21 @@ namespace Volo.Abp.Localization
Configure<AbpLocalizationOptions>(options =>
{
options.Resources.Add<LocalizationTestValidationResource>("en").AddVirtualJson("/Volo/Abp/Localization/TestResources/Base/Validation");
options.Resources.Add<LocalizationTestCountryNamesResource>("en").AddVirtualJson("/Volo/Abp/Localization/TestResources/Base/CountryNames");
options.Resources.Add<LocalizationTestResource>("en").AddVirtualJson("/Volo/Abp/Localization/TestResources/Source");
options.Resources.Get<LocalizationTestResource>().AddVirtualJson("/Volo/Abp/Localization/TestResources/SourceExt");
options.Resources
.Add<LocalizationTestValidationResource>("en")
.AddVirtualJson("/Volo/Abp/Localization/TestResources/Base/Validation");
options.Resources
.Add<LocalizationTestCountryNamesResource>("en")
.AddVirtualJson("/Volo/Abp/Localization/TestResources/Base/CountryNames");
options.Resources
.Add<LocalizationTestResource>("en")
.AddVirtualJson("/Volo/Abp/Localization/TestResources/Source");
options.Resources
.Get<LocalizationTestResource>()
.AddVirtualJson("/Volo/Abp/Localization/TestResources/SourceExt");
});
}
}

@ -3,8 +3,10 @@ using Volo.Abp.Localization.TestResources.Base.Validation;
namespace Volo.Abp.Localization.TestResources.Source
{
[InheritResource(typeof(LocalizationTestValidationResource))]
[InheritResource(typeof(LocalizationTestCountryNamesResource))]
[InheritResource(
typeof(LocalizationTestValidationResource),
typeof(LocalizationTestCountryNamesResource)
)]
public sealed class LocalizationTestResource
{

@ -5,6 +5,7 @@
"Car": "Car",
"CarPlural": "Cars",
"MaxLenghtErrorMessage": "This field's length can be maximum of '{0}' chars",
"Universe": "Universe"
"Universe": "Universe",
"FortyTwo": "Forty Two"
}
}
Loading…
Cancel
Save