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)); }
public void Builder_Uses_Specified_Response() { var req = new HttpResponseMessage(); var builder = new HttpResponseMessageBuilder(req); builder.HttpResponseMessage.Should().BeSameAs(req); }
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); }
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); }
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); }
public void WithHttpStatusCode_CreatesHttpResponseMessageWithCorrectStatusCode() { var sut = new HttpResponseMessageBuilder(); var result = sut.WithHttpStatusCode(HttpStatusCode.BadRequest).Build(); Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode); }
public void WithHttpVersion_CreatesHttpResponseMessageWithCorrectVersion() { var sut = new HttpResponseMessageBuilder(); var result = sut.WithHttpVersion(HttpVersion.Version20).Build(); Assert.Equal(HttpVersion.Version20, result.Version); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public void Builder_Creates_New_Response() { var builder = new HttpResponseMessageBuilder(); builder.HttpResponseMessage.Should().NotBeNull(); }