public async Task CallWebServiceGet_RateLimitOff_Success() { // arrange var URL = new Uri("http://fake/url"); _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); var card = new CardDto() { Id = "12345" }; var rootCard = new RootCardDto() { Card = card, }; using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCard); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); var service = new ServiceBaseTestObject( _mockHeaderManager.Object, _mockModelMapper.Object, _mockRateLimit.Object); // act var result = await service.CallWebServiceGetTestMethod(URL); // assert Assert.Equal(card.Id, result.Card.Id); }
public async Task CallWebServiceGet_ExceptionStatusCodeUnknown_ThrowsBadRequest() { // arrange const string ERROR_MESSAGE = "something bad happened"; var URL = new Uri("http://fake/url"); _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); using var httpTest = new HttpTest(); httpTest.RespondWith(ERROR_MESSAGE, 410); var service = new ServiceBaseTestObject( _mockHeaderManager.Object, _mockModelMapper.Object, _mockRateLimit.Object); // act // assert var result = await Assert.ThrowsAsync <MtgApiException>( () => service.CallWebServiceGetTestMethod(URL)); Assert.EndsWith(ERROR_MESSAGE, result.Message); _mockRepository.VerifyAll(); }
public async Task CallWebServiceGet_ReturnsException_Throws(int id, string description) { // arrange var URL = new Uri("http://fake/url"); _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); using var httpTest = new HttpTest(); httpTest.RespondWith("error", id); var service = new ServiceBaseTestObject( _mockHeaderManager.Object, _mockModelMapper.Object, _mockRateLimit.Object); // act // assert var result = await Assert.ThrowsAsync <MtgApiException>( () => service.CallWebServiceGetTestMethod(URL)); Assert.EndsWith(description, result.Message); _mockRepository.VerifyAll(); }
public async Task CallWebServiceGet_RateLimitOn_Success() { // arrange var URL = new Uri("http://fake/url"); _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(true); _mockRateLimit.Setup(x => x.Delay(2000, default)).ReturnsAsync(1); _mockRateLimit.Setup(x => x.AddApiCall()); var card = new CardDto() { Id = "12345" }; var rootCard = new RootCardDto() { Card = card, }; using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCard); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.RatelimitLimit)).Returns(2000); var service = new ServiceBaseTestObject( _mockHeaderManager.Object, _mockModelMapper.Object, _mockRateLimit.Object); // act var result = await service.CallWebServiceGetTestMethod(URL); // assert Assert.Equal(card.Id, result.Card.Id); _mockRepository.VerifyAll(); }