Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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();
        }