Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Jun 17:04
v0.3.0
acaa274

[0.3.0] - 2026-06-14: server-streaming builders and assertions

Minor release. Extends the builder and the assertion surface from unary calls to server-streaming calls: GrpcCallBuilder now constructs AsyncServerStreamingCall<T> test doubles, and a Streams() chain asserts on the streamed responses. Purely additive; the 0.2.0 ApiCompat baseline is preserved.

Added

  • GrpcCallBuilder.ServerStreaming<TResponse>(IEnumerable<TResponse> responses) builds a successful server-streaming call whose response stream yields the responses in order and then ends cleanly with a terminal StatusCode.OK.
  • GrpcCallBuilder.ServerStreamingFaulted<TResponse>(StatusCode statusCode, IEnumerable<TResponse> responses, string? detail = null) builds a server-streaming call that yields the responses and then throws an RpcException on the next read, so a wrapper's mid-stream fault handling can be exercised.
  • Streams() on an AsyncServerStreamingCall<TResponse> begins a server-streaming assertion that reads the response stream once. Chain StreamsAtLeast(int) / StreamsExactly(int) to assert the response count, StreamContains(Func<TResponse, bool>) to assert at least one response matches (the predicate text is captured for the failure message), and AndStreamItems(Func<IReadOnlyList<TResponse>, Task>) to run follow-on assertions against the materialized responses without re-reading the stream. A stream that faults mid-read fails with the partial count and the rendered gRPC outcome.