This commit is contained in:
Łukasz Domeradzki
2025-08-08 19:37:57 +02:00
parent b4874a05c6
commit 6bd2e088fc
2 changed files with 22 additions and 16 deletions

View File

@@ -22,6 +22,7 @@
// limitations under the License. // limitations under the License.
using System; using System;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using ArchiSteamFarm.Core; using ArchiSteamFarm.Core;
using ArchiSteamFarm.Localization; using ArchiSteamFarm.Localization;
@@ -43,6 +44,8 @@ internal sealed class IGitHubPluginUpdates {
private readonly TestContext TestContext; private readonly TestContext TestContext;
private CancellationToken CancellationToken => TestContext.CancellationTokenSource.Token;
[UsedImplicitly] [UsedImplicitly]
public IGitHubPluginUpdates(TestContext testContext) { public IGitHubPluginUpdates(TestContext testContext) {
ArgumentNullException.ThrowIfNull(testContext); ArgumentNullException.ThrowIfNull(testContext);
@@ -57,7 +60,7 @@ internal sealed class IGitHubPluginUpdates {
typeof(ASF).GetProperty(nameof(ASF.WebBrowser))?.SetValue(null, webBrowser); typeof(ASF).GetProperty(nameof(ASF.WebBrowser))?.SetValue(null, webBrowser);
ReleaseResponse? response = await GitHubService.GetLatestRelease(Repository, cancellationToken: TestContext.CancellationTokenSource.Token).ConfigureAwait(false); ReleaseResponse? response = await GitHubService.GetLatestRelease(Repository, cancellationToken: CancellationToken).ConfigureAwait(false);
if (response == null) { if (response == null) {
Assert.Inconclusive(Strings.FormatWarningFailedWithError(nameof(response))); Assert.Inconclusive(Strings.FormatWarningFailedWithError(nameof(response)));

View File

@@ -25,6 +25,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using JetBrains.Annotations; using JetBrains.Annotations;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -37,6 +38,8 @@ namespace ArchiSteamFarm.Tests;
internal sealed class SteamChatMessage { internal sealed class SteamChatMessage {
private readonly TestContext TestContext; private readonly TestContext TestContext;
private CancellationToken CancellationToken => TestContext.CancellationTokenSource.Token;
[UsedImplicitly] [UsedImplicitly]
public SteamChatMessage(TestContext testContext) { public SteamChatMessage(TestContext testContext) {
ArgumentNullException.ThrowIfNull(testContext); ArgumentNullException.ThrowIfNull(testContext);
@@ -51,7 +54,7 @@ internal sealed class SteamChatMessage {
const string emoji = "😎"; const string emoji = "😎";
const string message = $"{emoji}{emoji}{emoji}{emoji}"; const string message = $"{emoji}{emoji}{emoji}{emoji}";
List<string> output = await GetMessageParts(message, prefix, true).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, prefix, true).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(4, output); Assert.HasCount(4, output);
@@ -68,7 +71,7 @@ internal sealed class SteamChatMessage {
internal async Task DoesntSkipEmptyNewlines() { internal async Task DoesntSkipEmptyNewlines() {
string message = $"asdf{Environment.NewLine}{Environment.NewLine}asdf"; string message = $"asdf{Environment.NewLine}{Environment.NewLine}asdf";
List<string> output = await GetMessageParts(message).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual(message, output.First()); Assert.AreEqual(message, output.First());
@@ -86,7 +89,7 @@ internal sealed class SteamChatMessage {
string longSequence = new('a', longLineLength - 1); string longSequence = new('a', longLineLength - 1);
string message = $"{longSequence}{emoji}"; string message = $"{longSequence}{emoji}";
List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(2, output); Assert.HasCount(2, output);
@@ -99,7 +102,7 @@ internal sealed class SteamChatMessage {
const string message = "abcdef["; const string message = "abcdef[";
const string escapedMessage = @"abcdef\["; const string escapedMessage = @"abcdef\[";
List<string> output = await GetMessageParts(message).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual(escapedMessage, output.First()); Assert.AreEqual(escapedMessage, output.First());
@@ -115,7 +118,7 @@ internal sealed class SteamChatMessage {
string longLine = new('a', longLineLength - 2); string longLine = new('a', longLineLength - 2);
string message = $@"{longLine}\"; string message = $@"{longLine}\";
List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual($@"{message}\", output.First()); Assert.AreEqual($@"{message}\", output.First());
@@ -131,7 +134,7 @@ internal sealed class SteamChatMessage {
string longLine = new('a', longLineLength - 1); string longLine = new('a', longLineLength - 1);
string message = $"{longLine}["; string message = $"{longLine}[";
List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(2, output); Assert.HasCount(2, output);
@@ -143,7 +146,7 @@ internal sealed class SteamChatMessage {
internal async Task NoNeedForAnySplittingWithNewlines() { internal async Task NoNeedForAnySplittingWithNewlines() {
string message = $"abcdef{Environment.NewLine}ghijkl{Environment.NewLine}mnopqr"; string message = $"abcdef{Environment.NewLine}ghijkl{Environment.NewLine}mnopqr";
List<string> output = await GetMessageParts(message).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual(message, output.First()); Assert.AreEqual(message, output.First());
@@ -153,7 +156,7 @@ internal sealed class SteamChatMessage {
internal async Task NoNeedForAnySplittingWithoutNewlines() { internal async Task NoNeedForAnySplittingWithoutNewlines() {
const string message = "abcdef"; const string message = "abcdef";
List<string> output = await GetMessageParts(message).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual(message, output.First()); Assert.AreEqual(message, output.First());
@@ -167,7 +170,7 @@ internal sealed class SteamChatMessage {
const string message = @"[b]bold[/b] \n"; const string message = @"[b]bold[/b] \n";
const string escapedMessage = @"\[b]bold\[/b] \\n"; const string escapedMessage = @"\[b]bold\[/b] \\n";
List<string> output = await GetMessageParts(message).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual(escapedMessage, output.First()); Assert.AreEqual(escapedMessage, output.First());
@@ -180,7 +183,7 @@ internal sealed class SteamChatMessage {
const string message = "asdf"; const string message = "asdf";
List<string> output = await GetMessageParts(message, prefix).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, prefix).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(1, output); Assert.HasCount(1, output);
Assert.AreEqual($"{escapedPrefix}{message}", output.First()); Assert.AreEqual($"{escapedPrefix}{message}", output.First());
@@ -196,7 +199,7 @@ internal sealed class SteamChatMessage {
string longLine = new('a', longLineLength); string longLine = new('a', longLineLength);
string message = $"{longLine}{longLine}{longLine}{longLine}"; string message = $"{longLine}{longLine}{longLine}{longLine}";
List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(4, output); Assert.HasCount(4, output);
@@ -270,7 +273,7 @@ internal sealed class SteamChatMessage {
<ASF> 1/1 ботов уже имеют игру app/304930 | Unturned. <ASF> 1/1 ботов уже имеют игру app/304930 | Unturned.
"""; """;
List<string> output = await GetMessageParts(message, prefix).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, prefix).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(2, output); Assert.HasCount(2, output);
@@ -314,7 +317,7 @@ internal sealed class SteamChatMessage {
string newlinePart = newlinePartBuilder.ToString(); string newlinePart = newlinePartBuilder.ToString();
string message = $"{newlinePart}{Environment.NewLine}{newlinePart}{Environment.NewLine}{newlinePart}{Environment.NewLine}{newlinePart}"; string message = $"{newlinePart}{Environment.NewLine}{newlinePart}{Environment.NewLine}{newlinePart}{Environment.NewLine}{newlinePart}";
List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false); List<string> output = await GetMessageParts(message, isAccountLimited: isAccountLimited).ToListAsync(CancellationToken).ConfigureAwait(false);
Assert.HasCount(4, output); Assert.HasCount(4, output);
@@ -330,7 +333,7 @@ internal sealed class SteamChatMessage {
const string message = "asdf"; const string message = "asdf";
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () => await GetMessageParts(message, prefix).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false)).ConfigureAwait(false); await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () => await GetMessageParts(message, prefix).ToListAsync(CancellationToken).ConfigureAwait(false)).ConfigureAwait(false);
} }
[TestMethod] [TestMethod]
@@ -339,7 +342,7 @@ internal sealed class SteamChatMessage {
const string message = "asdf"; const string message = "asdf";
await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () => await GetMessageParts(message, prefix).ToListAsync(TestContext.CancellationTokenSource.Token).ConfigureAwait(false)).ConfigureAwait(false); await Assert.ThrowsExactlyAsync<ArgumentOutOfRangeException>(async () => await GetMessageParts(message, prefix).ToListAsync(CancellationToken).ConfigureAwait(false)).ConfigureAwait(false);
} }
} }
#pragma warning restore CA1812 // False positive, the class is used during MSTest #pragma warning restore CA1812 // False positive, the class is used during MSTest