[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 terminalStatusCode.OK.GrpcCallBuilder.ServerStreamingFaulted<TResponse>(StatusCode statusCode, IEnumerable<TResponse> responses, string? detail = null)builds a server-streaming call that yields the responses and then throws anRpcExceptionon the next read, so a wrapper's mid-stream fault handling can be exercised.Streams()on anAsyncServerStreamingCall<TResponse>begins a server-streaming assertion that reads the response stream once. ChainStreamsAtLeast(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), andAndStreamItems(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.