feat(AuthClientTests): Es wurde eine clientPool-Warteschlange erstellt, um die Injektion von Abhängigkeiten und die Bereitstellung von Diensten zu trennen.
- Dies macht die Messung realistischer.
This commit is contained in:
parent
8e979fa14d
commit
5886e076f4
@ -4,6 +4,7 @@ using DigitalData.Auth.Client;
|
|||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace DigitalData.Auth.Tests.Client;
|
namespace DigitalData.Auth.Tests.Client;
|
||||||
|
|
||||||
@ -14,7 +15,9 @@ public class AuthClientTests
|
|||||||
|
|
||||||
private Func<Action<ClientParams>, ServiceProvider> Build;
|
private Func<Action<ClientParams>, ServiceProvider> Build;
|
||||||
|
|
||||||
private WebApplication? _app = null;
|
private readonly WebApplication? _app = null;
|
||||||
|
|
||||||
|
private readonly Queue<IAuthClient> _clientPool = new();
|
||||||
|
|
||||||
private static int AvailablePort
|
private static int AvailablePort
|
||||||
{
|
{
|
||||||
@ -35,7 +38,19 @@ public class AuthClientTests
|
|||||||
.AddAuthHubClient(options)
|
.AddAuthHubClient(options)
|
||||||
.BuildServiceProvider();
|
.BuildServiceProvider();
|
||||||
|
|
||||||
// Create and run test server
|
var testCount = GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance)
|
||||||
|
.Where(m => m.GetCustomAttributes(typeof(TestAttribute), false).Length != 0 ||
|
||||||
|
m.GetCustomAttributes(typeof(TestCaseAttribute), false).Any())
|
||||||
|
.Count();
|
||||||
|
|
||||||
|
for(int i = 0; i < testCount; i++)
|
||||||
|
{
|
||||||
|
using var provider = Build(opt => opt.Url = _hubUrl);
|
||||||
|
var client = provider.GetRequiredService<IAuthClient>();
|
||||||
|
_clientPool.Append(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create and run test server */
|
||||||
// Create builder and add SignalR service
|
// Create builder and add SignalR service
|
||||||
var builder = WebApplication.CreateBuilder();
|
var builder = WebApplication.CreateBuilder();
|
||||||
builder.Services.AddSignalR();
|
builder.Services.AddSignalR();
|
||||||
@ -66,8 +81,7 @@ public class AuthClientTests
|
|||||||
public async Task StartAsync_ShouldConnectSuccessfully()
|
public async Task StartAsync_ShouldConnectSuccessfully()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
using var provider = Build(opt => opt.Url = _hubUrl);
|
var client = _clientPool.Dequeue();
|
||||||
var client = provider.GetRequiredService<IAuthClient>();
|
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await client.TryStartAsync();
|
await client.TryStartAsync();
|
||||||
@ -87,11 +101,7 @@ public class AuthClientTests
|
|||||||
// Arrange
|
// Arrange
|
||||||
string rcv_user = string.Empty;
|
string rcv_user = string.Empty;
|
||||||
string rcv_msg = string.Empty;
|
string rcv_msg = string.Empty;
|
||||||
|
var sender_client = _clientPool.Dequeue();
|
||||||
// Sender client
|
|
||||||
using var provider_sender = Build(opt => opt.Url = _hubUrl);
|
|
||||||
var sender_client = provider_sender.GetRequiredService<IAuthClient>();
|
|
||||||
await sender_client.TryStartAsync();
|
|
||||||
|
|
||||||
// Receiver client
|
// Receiver client
|
||||||
using var provider_receiver = Build(opt =>
|
using var provider_receiver = Build(opt =>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user