using YZWater.Core.Services; using Xunit; namespace YZWater.Core.Tests.Services; /// /// 退出确认框文案:确保中英两份字典都有键。 /// Get() 对缺失键回退成键名本身,所以判据用"两种语言结果不同", /// 不能用"文本不等于键名"(["Cancel"] = "Cancel" 这类同义项是合法的)。 /// [Collection("Language")] public class ExitConfirmTextTests : IDisposable { private static readonly string[] Keys = { "ExitConfirmTitle", "ExitConfirmMessage", "Confirm", "Cancel" }; public void Dispose() => LanguageService.Instance.IsChinese = true; [Fact] public void ExitDialogKeys_ResolveToDifferentTextInBothLanguages() { foreach (var key in Keys) { LanguageService.Instance.IsChinese = true; var zh = LanguageService.Instance.Get(key); LanguageService.Instance.IsChinese = false; var en = LanguageService.Instance.Get(key); Assert.False(string.IsNullOrWhiteSpace(zh), $"{key} 中文文案为空"); Assert.False(string.IsNullOrWhiteSpace(en), $"{key} 英文文案为空"); Assert.NotEqual(zh, en); } } }