Add XML documentation across gateway, worker, and .NET client
This commit is contained in:
@@ -16,6 +16,7 @@ namespace MxGateway.Worker.Tests.Ipc;
|
||||
|
||||
public sealed class WorkerPipeClientTests
|
||||
{
|
||||
/// <summary>Verifies that worker client connects and completes handshake.</summary>
|
||||
[Fact]
|
||||
public async Task RunAsync_ConnectsToPipeAndCompletesHandshake()
|
||||
{
|
||||
@@ -81,6 +82,7 @@ public sealed class WorkerPipeClientTests
|
||||
await clientTask;
|
||||
}
|
||||
|
||||
/// <summary>Verifies that worker client retries until pipe server becomes available.</summary>
|
||||
[Fact]
|
||||
public async Task RunAsync_RetriesUntilPipeServerAppears()
|
||||
{
|
||||
@@ -122,6 +124,7 @@ public sealed class WorkerPipeClientTests
|
||||
await clientTask;
|
||||
}
|
||||
|
||||
/// <summary>Verifies that worker client throws timeout if pipe never appears.</summary>
|
||||
[Fact]
|
||||
public async Task RunAsync_WhenPipeNeverAppears_ThrowsTimeoutException()
|
||||
{
|
||||
@@ -190,6 +193,11 @@ public sealed class WorkerPipeClientTests
|
||||
|
||||
private sealed class FakeRuntimeSession : IWorkerRuntimeSession
|
||||
{
|
||||
/// <summary>Starts the worker session.</summary>
|
||||
/// <param name="sessionId">Session ID.</param>
|
||||
/// <param name="workerProcessId">Worker process ID.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>Worker ready response.</returns>
|
||||
public Task<WorkerReady> StartAsync(
|
||||
string sessionId,
|
||||
int workerProcessId,
|
||||
@@ -204,6 +212,9 @@ public sealed class WorkerPipeClientTests
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>Dispatches a command to STA thread.</summary>
|
||||
/// <param name="command">The command.</param>
|
||||
/// <returns>Command reply.</returns>
|
||||
public Task<MxCommandReply> DispatchAsync(StaCommand command)
|
||||
{
|
||||
return Task.FromResult(new MxCommandReply
|
||||
@@ -219,6 +230,8 @@ public sealed class WorkerPipeClientTests
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>Captures current runtime heartbeat snapshot.</summary>
|
||||
/// <returns>Heartbeat snapshot.</returns>
|
||||
public WorkerRuntimeHeartbeatSnapshot CaptureHeartbeat()
|
||||
{
|
||||
return new WorkerRuntimeHeartbeatSnapshot(
|
||||
@@ -229,25 +242,38 @@ public sealed class WorkerPipeClientTests
|
||||
currentCommandCorrelationId: string.Empty);
|
||||
}
|
||||
|
||||
/// <summary>Drains queued events.</summary>
|
||||
/// <param name="maxEvents">Maximum events to drain.</param>
|
||||
/// <returns>Drained events.</returns>
|
||||
public IReadOnlyList<WorkerEvent> DrainEvents(uint maxEvents)
|
||||
{
|
||||
return Array.Empty<WorkerEvent>();
|
||||
}
|
||||
|
||||
/// <summary>Drains pending fault if any.</summary>
|
||||
/// <returns>Fault or null.</returns>
|
||||
public WorkerFault? DrainFault()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>Cancels a command by correlation ID.</summary>
|
||||
/// <param name="correlationId">Command correlation ID.</param>
|
||||
/// <returns>True if cancelled.</returns>
|
||||
public bool CancelCommand(string correlationId)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>Requests graceful shutdown.</summary>
|
||||
public void RequestShutdown()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>Shuts down gracefully within timeout.</summary>
|
||||
/// <param name="timeout">Shutdown timeout.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>Shutdown result.</returns>
|
||||
public Task<MxAccessShutdownResult> ShutdownGracefullyAsync(
|
||||
TimeSpan timeout,
|
||||
CancellationToken cancellationToken = default)
|
||||
@@ -255,6 +281,7 @@ public sealed class WorkerPipeClientTests
|
||||
return Task.FromResult(new MxAccessShutdownResult(Array.Empty<MxAccessShutdownFailure>()));
|
||||
}
|
||||
|
||||
/// <summary>Disposes resources.</summary>
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user