Перейти к основному содержимому
Версия: 5.x

DarkWS.Testing.DarkWsTestHost

DarkWS.Testing​

DarkWS.Testing​

DarkWsTestHost Class​

Runs registered actions through the server pipeline without opening sockets or starting hosted services.

public sealed class DarkWsTestHost : System.IAsyncDisposable

Inheritance System.Object → DarkWsTestHost

Implements System.IAsyncDisposable

Constructors​

DarkWsTestHost(Action<DarkWsBuilder>, Action<DarkWsOptions>) Constructor​

Registers DarkWS and invokes application configuration. Always uses an isolated in-memory backplane.

public DarkWsTestHost(System.Action<DarkWS.DarkWsBuilder> configure, System.Action<DarkWS.DarkWsOptions>? configureOptions=null);

Parameters​

configure System.Action<DarkWS.DarkWsBuilder>

configureOptions System.Action<DarkWS.DarkWsOptions>

Properties​

DarkWsTestHost.Broadcasts Property​

Gets all published broadcasts, including those with no matching recipient.

public System.Collections.Generic.IReadOnlyList<DarkWS.BroadcastMessage> Broadcasts { get; }

Property Value​

System.Collections.Generic.IReadOnlyList<DarkWS.BroadcastMessage>

DarkWsTestHost.Services Property​

Gets the root provider for application singleton inspection. Resolve scoped dependencies through CreateScope.

public System.IServiceProvider Services { get; }

Property Value​

System.IServiceProvider

Methods​

DarkWsTestHost.CreateConnection(IDarkWsSession, HttpContext) Method​

Registers a fake recipient with a fixed session. Configure connections before invoking concurrent actions.

public DarkWS.Testing.DarkWsTestConnection CreateConnection(DarkWS.Abstractions.IDarkWsSession? session=null, Microsoft.AspNetCore.Http.HttpContext? httpContext=null);

Parameters​

session DarkWS.Abstractions.IDarkWsSession

httpContext Microsoft.AspNetCore.Http.HttpContext

Returns​

DarkWsTestConnection

DarkWsTestHost.CreateScope(DarkWsTestConnection, CancellationToken) Method​

Creates a scope for manually initialized handlers. Use InvokeAsync to exercise the registered action pipeline.

public DarkWS.Testing.DarkWsTestScope CreateScope(DarkWS.Testing.DarkWsTestConnection connection, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters​

connection DarkWsTestConnection

cancellationToken System.Threading.CancellationToken

Returns​

DarkWsTestScope

DarkWsTestHost.DisposeAsync() Method​

Stops broadcast delivery, closes fake connections, and disposes application services. Await active invocations first.

public System.Threading.Tasks.ValueTask DisposeAsync();

Implements DisposeAsync()

Returns​

System.Threading.Tasks.ValueTask

DarkWsTestHost.InvokeAsync(DarkWsTestConnection, string, Nullable<JsonElement>, string, CancellationToken) Method​

Invokes an action with JSON data through real request validation, authorization, binding, filters, and response writing.

public System.Threading.Tasks.Task InvokeAsync(DarkWS.Testing.DarkWsTestConnection connection, string action, System.Nullable<System.Text.Json.JsonElement> data=null, string? requestId=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters​

connection DarkWsTestConnection

action System.String

data System.Nullable<System.Text.Json.JsonElement>

requestId System.String

cancellationToken System.Threading.CancellationToken

Returns​

System.Threading.Tasks.Task

Remarks​

Each invocation owns a fresh async message scope. Responses and delivered broadcasts appear in connection.SentMessages. Cancellation follows server behavior and can finish without a response. This does not simulate authentication, lifecycle hooks, or transport limits.