public async void PostOrderShouldReturn()
        {
            var clientHandlerStub = new DelegatingHandlerStub();
            var client            = new HttpClient(clientHandlerStub);

            var sut = new ExternalMobileTelecomsNetworkService(options, client);

            var actual = await sut.PostOrder(expectedOrder);

            actual.Should().BeTrue();
        }
        public async void ReturnFalseWhenPostOrderFails()
        {
            var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) =>
                                                              Task.FromResult(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                                                                              ));
            var client = new HttpClient(clientHandlerStub);
            var sut    = new ExternalMobileTelecomsNetworkService(options, client);

            var actual = await sut.PostOrder(expectedOrder);

            actual.Should().BeFalse();
        }
        public async void PostOrderShouldPostOrderToExternalService()
        {
            var handlerMock = new Mock <DelegatingHandler>();

            handlerMock.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync",
                                                 ItExpr.Is <HttpRequestMessage>(
                                                     x => x.RequestUri == expectedUrl && HttpContentEquals(x.Content, expectedOrder)),
                                                 ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)));
            var client = new HttpClient(handlerMock.Object);

            var sut = new ExternalMobileTelecomsNetworkService(options, client);

            await sut.PostOrder(expectedOrder);

            handlerMock.VerifyAll();
        }