public async Task <HttpResponseMessage> Request(IAbstractMessage message) { var binary = Binary(message); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/messages") { Headers = { { HeaderNames.MessageName, message.GetType().Name }, { HeaderNames.CorrelationId, CorrelationId } }, Content = new ByteArrayContent(binary) }; var response = await Client.SendAsync(request); response.Should().BeEquivalentTo(new { RequestMessage = request }); response.Headers.AsEnumerable().Should().BeEquivalentTo(new Dictionary <string, IEnumerable <string> > { { HeaderNames.MessageName, new[] { message.GetType().Name } }, { HeaderNames.CorrelationId, new[] { CorrelationId } } }); return(response); }
public async Task <TResponse?> RequestObject <TResponse>(IAbstractMessage message) { var binary = Binary(message); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/messages") { Headers = { { HeaderNames.MessageName, message.GetType().Name }, { HeaderNames.CorrelationId, CorrelationId } }, Content = new ByteArrayContent(binary) }; var response = await Client.SendAsync(request); response.Should().BeEquivalentTo(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, RequestMessage = request, Headers = { { HeaderNames.MessageName, message.GetType().Name }, { HeaderNames.CorrelationId, CorrelationId } } }); return(await ReadObject <TResponse>(response)); }
private byte[] Binary(IAbstractMessage message) => JsonSerializer.SerializeToUtf8Bytes(message, Options);