- Vereinfachte Assertions in StartAsync_ShouldConnectSuccessfully durch Entfernen expliziter Strings - Aktualisierte ReceiveMessage_ShouldCallOnMessageReceived, um Nachrichteninhalte zu überprüfen - Refaktorisierte Variablennamen in ReceiveMessage_ShouldCallOnMessageReceived für bessere Verständlichkeit
78 lines
2.1 KiB
C#
78 lines
2.1 KiB
C#
using DigitalData.Auth.Abstractions;
|
|
using DigitalData.Auth.Client;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace DigitalData.Auth.Tests.Client;
|
|
|
|
[TestFixture]
|
|
public class AuthClientTests
|
|
{
|
|
private static readonly string HubUrl = "https://localhost:7192/auth-hub";
|
|
|
|
private Func<Action<ClientParams>, ServiceProvider> Build;
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
Build = options => new ServiceCollection()
|
|
.AddAuthHubClient(options)
|
|
.BuildServiceProvider();
|
|
}
|
|
|
|
[Test]
|
|
public async Task StartAsync_ShouldConnectSuccessfully()
|
|
{
|
|
// Arrange
|
|
using var provider = Build(opt => opt.Url = HubUrl);
|
|
var client = provider.GetRequiredService<IAuthClient>();
|
|
|
|
// Act
|
|
await client.TryStartAsync();
|
|
|
|
// Assert
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(client.IsConnected);
|
|
Assert.That(!client.IsConnectionFailed);
|
|
Assert.That(client.ConnectionError, Is.Null);
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public async Task ReceiveMessage_ShouldCallOnMessageReceived()
|
|
{
|
|
// Arrange
|
|
string rcv_user = string.Empty;
|
|
string rcv_msg = string.Empty;
|
|
|
|
// Sender client
|
|
using var provider_sender = Build(opt => opt.Url = HubUrl);
|
|
var sender_client = provider_sender.GetRequiredService<IAuthClient>();
|
|
await sender_client.TryStartAsync();
|
|
|
|
// Receiver client
|
|
using var provider_receiver = Build(opt =>
|
|
{
|
|
opt.Url = HubUrl;
|
|
opt.Events.OnMessageReceived = (user, message, logger) =>
|
|
{
|
|
rcv_user = user;
|
|
rcv_msg = message;
|
|
};
|
|
});
|
|
var client_receiver = provider_receiver.GetRequiredService<IAuthClient>();
|
|
|
|
string user = "user";
|
|
string message = "message";
|
|
|
|
// Act
|
|
await client_receiver.ReceiveMessageAsync(user, message);
|
|
|
|
// Assert
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(rcv_user, Is.EqualTo(user));
|
|
Assert.That(rcv_msg, Is.EqualTo(message));
|
|
});
|
|
}
|
|
} |