mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-08-18 15:33:33 +08:00
changed.项目结构优化
This commit is contained in:
83
tests/LanMountainDesktop.Tests/LocalizationServiceTests.cs
Normal file
83
tests/LanMountainDesktop.Tests/LocalizationServiceTests.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using LanMountainDesktop.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace LanMountainDesktop.Tests;
|
||||
|
||||
public sealed class LocalizationServiceTests
|
||||
{
|
||||
private readonly LocalizationService _service = new();
|
||||
|
||||
[Theory]
|
||||
[InlineData(null, "zh-CN")]
|
||||
[InlineData("", "zh-CN")]
|
||||
[InlineData(" ", "zh-CN")]
|
||||
[InlineData("zh-CN", "zh-CN")]
|
||||
[InlineData("zh-cn", "zh-CN")]
|
||||
[InlineData("en-US", "en-US")]
|
||||
[InlineData("en-us", "en-US")]
|
||||
[InlineData("en", "en-US")]
|
||||
[InlineData("EN", "en-US")]
|
||||
[InlineData("ja-JP", "ja-JP")]
|
||||
[InlineData("ja-jp", "ja-JP")]
|
||||
[InlineData("ja", "ja-JP")]
|
||||
[InlineData("JA", "ja-JP")]
|
||||
[InlineData("ko-KR", "ko-KR")]
|
||||
[InlineData("ko-kr", "ko-KR")]
|
||||
[InlineData("ko", "ko-KR")]
|
||||
[InlineData("KO", "ko-KR")]
|
||||
[InlineData("fr-FR", "zh-CN")]
|
||||
[InlineData("de", "zh-CN")]
|
||||
[InlineData("unknown", "zh-CN")]
|
||||
public void NormalizeLanguageCode_MapsToSupportedLocales(string? input, string expected)
|
||||
{
|
||||
Assert.Equal(expected, _service.NormalizeLanguageCode(input));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetString_ReturnsFallbackWhenNoLanguageFilesExist()
|
||||
{
|
||||
var result = _service.GetString("en-US", "nonexistent.key", "Default Value");
|
||||
|
||||
Assert.Equal("Default Value", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetString_ReturnsFallbackForEmptyKey()
|
||||
{
|
||||
var result = _service.GetString("en-US", "", "Fallback");
|
||||
|
||||
Assert.Equal("Fallback", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetString_FallsBackForUnknownLanguage()
|
||||
{
|
||||
var result = _service.GetString("fr-FR", "some.key", "Fallback");
|
||||
|
||||
Assert.Equal("Fallback", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ClearCache_WithNull_ClearsAllEntries()
|
||||
{
|
||||
_service.ClearCache(null);
|
||||
var result = _service.GetString("en-US", "test.key", "After");
|
||||
Assert.Equal("After", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ClearCache_WithSpecificCode_ClearsOnlyThatLanguage()
|
||||
{
|
||||
_service.ClearCache("en-US");
|
||||
var result = _service.GetString("en-US", "test.key", "Cleared");
|
||||
Assert.Equal("Cleared", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ClearCache_WithWhitespace_ClearsAllEntries()
|
||||
{
|
||||
_service.ClearCache(" ");
|
||||
var result = _service.GetString("ja-JP", "test.key", "AllCleared");
|
||||
Assert.Equal("AllCleared", result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user