Exemplo n.º 1
0
        public async Task AddMappingDuplicateThrowsInvalidOperationException(
            EntityNotFoundException expectedException,
            HttpResponseMessageBuilder builder,
            ResourceNotFoundApiModel apiModel)
        {
            var addMappings = new Action <HttpResponseExceptionConfiguration>(
                configuration =>
            {
                configuration.AddMapping(
                    HttpStatusCode.NotFound,
                    (r, c) => expectedException);

                configuration.AddMapping(
                    HttpStatusCode.NotFound,
                    (r, c) => expectedException);
            });

            var mapper = new TestHttpResponseExceptionMapper(addMappings);

            var httpResponseMessage = builder
                                      .WithStatusCode(HttpStatusCode.NotFound)
                                      .WithJson(apiModel)
                                      .Build();

            await Assert.ThrowsAsync <InvalidOperationException>(
                () => mapper.GetException(httpResponseMessage));
        }
Exemplo n.º 2
0
        public void Builder_Uses_Specified_Response()
        {
            var req     = new HttpResponseMessage();
            var builder = new HttpResponseMessageBuilder(req);

            builder.HttpResponseMessage.Should().BeSameAs(req);
        }
Exemplo n.º 3
0
        public async Task RemoveMappingRemovesTheExceptionAndReturnsDefaultException(
            EntityNotFoundException expectedException,
            HttpResponseMessageBuilder builder,
            ResourceNotFoundApiModel apiModel)
        {
            var addMappings = new Action <HttpResponseExceptionConfiguration>(
                configuration =>
            {
                configuration.AddMapping(
                    HttpStatusCode.NotFound,
                    (r, c) => expectedException);

                configuration.RemoveMapping(HttpStatusCode.NotFound);
            });

            var mapper = new TestHttpResponseExceptionMapper(addMappings);

            var httpResponseMessage = builder
                                      .WithStatusCode(HttpStatusCode.NotFound)
                                      .WithJson(apiModel)
                                      .Build();

            var exception = await mapper.GetException(httpResponseMessage);

            Assert.Equal(mapper.DefaultException, exception);
        }
        public void StatusCode_Wraps_HttpResponseMessage_Property()
        {
            var builder    = new HttpResponseMessageBuilder().SetStatusCode(123);
            var statusCode = ((IHttpStatusCodeBuilder)builder).StatusCode;

            statusCode.Should().Be(builder.HttpResponseMessage.StatusCode);
        }
        public void Headers_Wraps_HttpResponseMessage_Property()
        {
            var builder = new HttpResponseMessageBuilder();
            var headers = ((IHttpHeadersBuilder)builder).Headers;

            headers.Should().BeSameAs(builder.HttpResponseMessage.Headers);
        }
        public void Throws_ArgumentNullException()
        {
            var    builder  = new HttpResponseMessageBuilder();
            Action testCode = () => builder.HttpResponseMessage = null;

            testCode.Should().Throw <ArgumentNullException>();
        }
        public void ReasonPhrase_Wraps_HttpResponseMessage_Property()
        {
            var builder      = new HttpResponseMessageBuilder().SetReasonPhrase("Test");
            var reasonPhrase = ((IHttpResponseReasonPhraseBuilder)builder).ReasonPhrase;

            reasonPhrase.Should().BeEquivalentTo(builder.HttpResponseMessage.ReasonPhrase);
        }
        public void Version_Wraps_HttpResponseMessage_Property()
        {
            var builder = new HttpResponseMessageBuilder().SetVersion(Version.Parse("1.2.3.4"));
            var version = ((IHttpProtocolVersionBuilder)builder).Version;

            version.Should().BeSameAs(builder.HttpResponseMessage.Version);
        }
        public void Content_Wraps_HttpResponseMessage_Property()
        {
            var builder = new HttpResponseMessageBuilder().SetContent(new StringContent(""));
            var content = ((IHttpContentBuilder)builder).Content;

            content.Should().BeSameAs(builder.HttpResponseMessage.Content);
        }
Exemplo n.º 10
0
        public async Task UpdateMappingUpdatesException(
            EntityNotFoundException expectedException,
            EntityNotFoundException exceptionReplacement,
            HttpResponseMessageBuilder builder,
            ResourceNotFoundApiModel apiModel)
        {
            var addMappings = new Action <HttpResponseExceptionConfiguration>(
                configuration =>
            {
                configuration.AddMapping(
                    HttpStatusCode.NotFound,
                    (r, c) => expectedException);

                configuration.UpdateMapping(
                    HttpStatusCode.NotFound,
                    (r, c) => exceptionReplacement);
            });

            var mapper = new TestHttpResponseExceptionMapper(addMappings);

            var httpResponseMessage = builder
                                      .WithStatusCode(HttpStatusCode.NotFound)
                                      .WithJson(apiModel)
                                      .Build();

            var exception = await mapper.GetException(httpResponseMessage);

            Assert.Equal(exceptionReplacement, exception);
        }
Exemplo n.º 11
0
        public void ToString_Returns_ToString_Result_Of_HttpResponseMessage()
        {
            var builder  = new HttpResponseMessageBuilder();
            var expected = builder.HttpResponseMessage.ToString();
            var actual   = builder.ToString();

            actual.Should().BeEquivalentTo(expected);
        }
Exemplo n.º 12
0
        public void WithHttpStatusCode_CreatesHttpResponseMessageWithCorrectStatusCode()
        {
            var sut = new HttpResponseMessageBuilder();

            var result = sut.WithHttpStatusCode(HttpStatusCode.BadRequest).Build();

            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
Exemplo n.º 13
0
        public void WithHttpVersion_CreatesHttpResponseMessageWithCorrectVersion()
        {
            var sut = new HttpResponseMessageBuilder();

            var result = sut.WithHttpVersion(HttpVersion.Version20).Build();

            Assert.Equal(HttpVersion.Version20, result.Version);
        }
Exemplo n.º 14
0
        public void Build_ReturnsEmptyHttpResponseMessage()
        {
            var sut = new HttpResponseMessageBuilder();

            var result = sut.Build();

            Assert.NotNull(result);
            Assert.Equal(HttpVersion.Version11, result.Version);
            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            Assert.Empty(result.Headers);
            Assert.NotNull(result.Content);
            Assert.Null(result.RequestMessage);
        }
Exemplo n.º 15
0
        public async Task Get_Empty()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOkEmpty().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            var request = new TradesGetRequest
            {
                Coins = CoinsEnum.BTC
            };
            //Act
            var resp = await _tradesService.Get(request);

            //Assert
            Assert.Null(resp);
        }
Exemplo n.º 16
0
        public async Task Get_StatusOk()
        {
            //Arrange
            var expectedResult = new DaySummary
            {
                Date     = new DateTime(2013, 06, 20),
                Opening  = 262.99999,
                Closing  = 269.0,
                Lowest   = 260.00002,
                Highest  = 269.0,
                Volume   = 7253.1336356785,
                Quantity = 27.11390588,
                Amount   = 28,
                AvgPrice = 267.5060416518087
            };

            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOk_DaySummary().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            var request = new DaySummaryGetRequest()
            {
                Coins = Domain.CoinsEnum.BTC,
                Date  = DateTime.Now
            };

            //Act
            var result = await _daySummaryController.Get(request);

            var okObjectResult = result as OkObjectResult;
            var resultObj      = okObjectResult.Value as DaySummary;

            //Assert
            Assert.Equal(200, okObjectResult.StatusCode);
            Assert.NotNull(resultObj);

            Assert.Equal(expectedResult.Date, resultObj.Date);
            Assert.Equal(expectedResult.Opening, resultObj.Opening);
            Assert.Equal(expectedResult.Closing, resultObj.Closing);
            Assert.Equal(expectedResult.Lowest, resultObj.Lowest);
            Assert.Equal(expectedResult.Highest, resultObj.Highest);
            Assert.Equal(expectedResult.Volume, resultObj.Volume);
            Assert.Equal(expectedResult.Quantity, resultObj.Quantity);
            Assert.Equal(expectedResult.Amount, resultObj.Amount);
            Assert.Equal(expectedResult.AvgPrice, resultObj.AvgPrice);
        }
Exemplo n.º 17
0
        public async Task Get_StatusOk()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOk_ticker().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            TickerGetRequest tickerGetRequest = new TickerGetRequest
            {
                Coins = CoinsEnum.BTC
            };

            //Act
            var resp = await _tickerService.Get(tickerGetRequest);

            //Assert
            Assert.Single(resp);
        }
Exemplo n.º 18
0
        public async Task Get()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOk_DaySummary().Build();

            _httpRequestHandlerMock.Setup(p => p.Get("https://www.mercadobitcoin.net/api/BTC/day-summary/2021/3/27")).ReturnsAsync(httpResponseMessage);

            var request = new DaySummaryGetRequest()
            {
                Coins = Domain.CoinsEnum.BTC,
                Date  = DateTime.Now
            };

            //Act
            var resp = await _daySummaryService.Get(request);

            //Assert
            Assert.NotNull(resp);
        }
Exemplo n.º 19
0
        public async Task Get_FilterByTid()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOk_Trades().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            var request = new TradesGetRequest
            {
                Coins = Domain.CoinsEnum.BTC,
                Tid   = 1
            };
            //Act
            var resp = await _tradesService.Get(request);

            //Assert
            Assert.NotNull(resp);
            Assert.Equal(5, resp.ToList().Count);
        }
Exemplo n.º 20
0
        public async Task Get_statusOk()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOk_ticker().Build();

            var handlerMock = new Mock <HttpMessageHandler>();

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).ReturnsAsync(httpResponseMessage);

            _client = new HttpClient(handlerMock.Object);
            HttpRequestHandler requestHandler = new HttpRequestHandler(_client);

            //Act
            var resp = await requestHandler.Get(URL);

            //Assert
            Assert.NotNull(resp);
        }
Exemplo n.º 21
0
        public async Task Get_StatusOk()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOk_Orderbook().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            OrderbookGetRequest orderbookGetRequest = new OrderbookGetRequest
            {
                Coins = CoinsEnum.BTC
            };

            //Act
            var resp = await _orderbookService.Get(orderbookGetRequest);

            //Assert
            Assert.NotNull(resp);
            Assert.Equal(3, resp.Asks.Count);
            Assert.Equal(2, resp.Bids.Count);
        }
Exemplo n.º 22
0
        public async Task Get_statusOk_empty()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOkEmpty().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            OrderbookGetRequest orderbookGetRequest = new OrderbookGetRequest()
            {
                Coins = CoinsEnum.BTC
            };

            //Act
            var result = await _orderbookController.Get(orderbookGetRequest);

            var okObjectResult = result as OkObjectResult;
            var resultObj      = okObjectResult.Value as Orderbook;

            //Assert
            Assert.Equal(200, okObjectResult.StatusCode);
            Assert.Null(resultObj);
        }
Exemplo n.º 23
0
        public async Task Get_statusOk_Empty()
        {
            //Arrange
            var httpResponseMessage = new HttpResponseMessageBuilder().StatusOkEmpty().Build();

            _httpRequestHandlerMock.Setup(p => p.Get(It.IsAny <string>())).ReturnsAsync(httpResponseMessage);

            TradesGetRequest tickerGetRequest = new TradesGetRequest()
            {
                Coins = CoinsEnum.BTC
            };

            //Act
            var result = await _tradesController.Get(tickerGetRequest);

            var okObjectResult = result as OkObjectResult;
            var resultList     = okObjectResult.Value as List <Trades>;

            //Assert
            Assert.Equal(200, okObjectResult.StatusCode);
            Assert.Empty(resultList);
        }
Exemplo n.º 24
0
        public void Builder_Creates_New_Response()
        {
            var builder = new HttpResponseMessageBuilder();

            builder.HttpResponseMessage.Should().NotBeNull();
        }