using System.Globalization; using System.Reflection; using Microsoft.Extensions.Localization; using Util.Localization.Resources.ResourceTypes; using Util.Localization.ResourceTypes; using Xunit; namespace Util.Localization.Tests; /// /// Json字符串定位器工厂测试 /// public class JsonStringLocalizerFactoryTest { /// /// Json字符串定位器工厂 /// private readonly IStringLocalizerFactory _factory; /// /// 测试初始化 /// /// Json字符串定位器工厂 public JsonStringLocalizerFactoryTest( IStringLocalizerFactory factory ) { _factory = factory; } /// /// 测试获取本地化字符串值 - 读取 Resources\ResourceTypes.Resource1.en-US.json /// [Fact] public void Test_1() { CultureInfo.CurrentUICulture = new CultureInfo( "en-US" ); var assemblyName = new AssemblyName( GetType().Assembly.FullName ); var localizer = _factory.Create( "ResourceTypes.Resource1", assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "hi", value ); } /// /// 测试获取本地化字符串值 - 读取 Resources\ResourceTypes.Resource1.zh-CN.json /// [Fact] public void Test_2() { CultureInfo.CurrentUICulture = new CultureInfo( "zh-CN" ); var assemblyName = new AssemblyName( GetType().Assembly.FullName ); var localizer = _factory.Create( "ResourceTypes.Resource1", assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "哈楼", value ); } /// /// 测试获取本地化字符串值 - 读取 Resources2\ResourceTypes.Resource101.en-US.json /// [Fact] public void Test_3() { CultureInfo.CurrentUICulture = new CultureInfo( "en-US" ); var assemblyName = new AssemblyName( typeof( Resource101 ).Assembly.FullName ); var localizer = _factory.Create( "ResourceTypes.Resource101", assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "hi", value ); } /// /// 测试获取本地化字符串值 - 读取 Resources2\ResourceTypes.Resource101.zh-CN.json /// [Fact] public void Test_4() { CultureInfo.CurrentUICulture = new CultureInfo( "zh-CN" ); var assemblyName = new AssemblyName( typeof( Resource101 ).Assembly.FullName ); var localizer = _factory.Create( "ResourceTypes.Resource101", assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "哈楼", value ); } /// /// 测试获取本地化字符串值 - 读取 Resources\ResourceTypes\Resource2.en-US.json /// [Fact] public void Test_5() { CultureInfo.CurrentUICulture = new CultureInfo( "en-US" ); var assemblyName = new AssemblyName( typeof( Resource2 ).Assembly.FullName ); var localizer = _factory.Create( "ResourceTypes.Resource2", assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "hi", value ); } /// /// 测试获取本地化字符串值 - 读取 Resources\ResourceTypes\Resource2.zh-CN.json /// [Fact] public void Test_6() { CultureInfo.CurrentUICulture = new CultureInfo( "zh-CN" ); var assemblyName = new AssemblyName( typeof( Resource2 ).Assembly.FullName ); var localizer = _factory.Create( "ResourceTypes.Resource2", assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "哈楼", value ); } /// /// 测试获取本地化字符串值 - 读取 Resources\zh.json /// [Fact] public void Test_7() { CultureInfo.CurrentUICulture = new CultureInfo( "zh-CN" ); var assemblyName = new AssemblyName( GetType().Assembly.FullName ); var localizer = _factory.Create( null, assemblyName.Name ); var value = localizer["Hello"]; Assert.Equal( "呜呜", value ); } }