public async Task Sut_ProcessCommand_ShouldReadCorrectResponse(
            [Frozen] Mock <IHttpRequestResolver> mockResolver,
            [Frozen] Mock <IHttpRequestResultReaderResolver> mockReaderResolver,
            DefaultHttpRequestBus sut,
            Mock <IHttpRequest> mockRequest,
            Mock <IHttpRequestResult> mockResult,
            Mock <IHttpRequestResultReader> mockReader,
            TestCommand command)
        {
            //arrange
            mockRequest.Setup(m => m.Execute(It.IsAny <CancellationToken>())).ReturnsTask(mockResult.Object);
            mockResolver.Setup(m => m.ResolveHttpRequest(command)).ReturnsTask(mockRequest.Object);
            mockReaderResolver.Setup(m => m.ResolveHttpRequestResultReader(command)).Returns(mockReader.Object);

            //act
            await sut.ProcessCommand(command);

            //assert
            mockReader.Verify(r => r.Read <NoResponse>(mockResult.Object, It.IsAny <CancellationToken>()));
        }
        public async Task Sut_ProcessQuery_ShouldReturnCorrectValue(
            [Frozen] Mock <IHttpRequestResolver> mockResolver,
            [Frozen] Mock <IHttpRequestResultReaderResolver> mockReaderResolver,
            DefaultHttpRequestBus sut,
            Mock <IHttpRequest> mockRequest,
            Mock <IHttpRequestResult> mockResult,
            Mock <IHttpRequestResultReader> mockReader,
            TestQuery query,
            object expected)
        {
            //arrange
            mockRequest.Setup(m => m.Execute(It.IsAny <CancellationToken>())).ReturnsTask(mockResult.Object);
            mockResolver.Setup(m => m.ResolveHttpRequest(query)).ReturnsTask(mockRequest.Object);
            mockReaderResolver.Setup(m => m.ResolveHttpRequestResultReader(query)).Returns(mockReader.Object);
            mockReader.Setup(r => r.Read <object>(mockResult.Object, It.IsAny <CancellationToken>()))
            .ReturnsTask(expected);

            //act
            var actual = await sut.ProcessQuery <TestQuery, object>(query);

            //assert
            actual.Should().Be(expected);
        }
 public void Sut_ShouldBeAsyncQueryBus(DefaultHttpRequestBus sut)
 {
     sut.Should().BeAssignableTo <IAsyncQueryBus>();
 }