Files
Telegram-Panel/tests/TelegramPanel.Web.Tests/TelegramRecoveryWiringTests.cs

68 lines
2.5 KiB
C#

using System.Text.RegularExpressions;
using Xunit;
namespace TelegramPanel.Web.Tests;
public sealed class TelegramRecoveryWiringTests
{
private static readonly string ServiceSource = File.ReadAllText(Path.Combine(
TestRepositoryRoot.Find(),
"src",
"TelegramPanel.Core",
"Services",
"Telegram",
"AccountTelegramToolsService.cs"));
[Fact]
public void ()
{
Assert.Matches(
"RefreshAccountStatusAsync\\([\\s\\S]*?TelegramTransientConnectionRetry\\.ExecuteAsync[\\s\\S]*?private async Task TryPersistStatusAsync",
ServiceSource);
Assert.Matches(
"ResolveChatTargetAsync\\([\\s\\S]*?TelegramTransientConnectionRetry\\.ExecuteAsync[\\s\\S]*?SendMessageToResolvedChatAsync",
ServiceSource);
Assert.Matches(
"JoinChatOrChannelAsync\\([\\s\\S]*?TelegramTransientConnectionRetry\\.ExecuteAsync[\\s\\S]*?LeaveChatOrChannelAsync",
ServiceSource);
Assert.Matches(
"StartExternalBotAsync\\([\\s\\S]*?TelegramTransientConnectionRetry\\.ExecuteAsync[\\s\\S]*?StopExternalBotAsync",
ServiceSource);
Assert.Matches(
"StopExternalBotAsync\\([\\s\\S]*?TelegramTransientConnectionRetry\\.ExecuteAsync[\\s\\S]*?public sealed record ResolvedChatTarget",
ServiceSource);
}
[Fact]
public void Bot私聊再回退群组频道()
{
Assert.Matches(
"TryNormalizeTelegramBotUsername\\(raw[\\s\\S]*?TryResolveBotChatTargetAsync[\\s\\S]*?client\\.AnalyzeInviteLink",
ServiceSource);
}
[Fact]
public void Telegram读取均有超时与取消边界()
{
Assert.Matches(
"var chat = await ExecuteTelegramRequestAsync\\([\\s\\S]*?client\\.AnalyzeInviteLink",
ServiceSource);
Assert.Matches(
"var dialogs = await ExecuteTelegramRequestAsync\\([\\s\\S]*?client\\.Messages_GetAllDialogs",
ServiceSource);
}
[Fact]
public void ()
{
Assert.Contains(
"catch (Exception) when (cancellationToken.IsCancellationRequested)",
ServiceSource,
StringComparison.Ordinal);
Assert.Contains(
"throw new OperationCanceledException(cancellationToken);",
ServiceSource,
StringComparison.Ordinal);
}
}