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
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
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
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
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.