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 void Constructor_Calls_ResetCurrentUrl()
        {
            // arrange
            // act
            var service = new ServiceBaseTestObject(
                _mockHeaderManager.Object,
                _mockModelMapper.Object,
                _mockRateLimit.Object);

            // assert
            Assert.NotNull(service.CurrentQueryUrlTestProp);
        }
Beispiel #4
0
        public void ResetCurrentUrl_ResetsUrl_Success()
        {
            // arrange
            var service = new ServiceBaseTestObject(
                _mockHeaderManager.Object,
                _mockModelMapper.Object,
                _mockRateLimit.Object);

            service.CurrentQueryUrlTestProp.AppendPathSegments("this", "is", "a", "test");

            // act
            service.ResetCurrentUrlTestMethod();

            // assert
            Assert.Equal(2, service.CurrentQueryUrlTestProp.PathSegments.Count);
        }
Beispiel #5
0
        public void GetPagingInfo_Sucess()
        {
            // arrange
            _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(100);
            _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(10);

            var service = new ServiceBaseTestObject(
                _mockHeaderManager.Object,
                _mockModelMapper.Object,
                _mockRateLimit.Object);

            // act
            var result = service.GetPagingInfoTestMethod();

            // assert
            Assert.NotNull(result);
        }
Beispiel #6
0
        public void GetPagingInfo_CountsCorrect()
        {
            // arrange
            const int TOTAL_COUNT = 100;
            const int PAGE_SIZE   = 10;

            _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(TOTAL_COUNT);
            _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(PAGE_SIZE);

            var service = new ServiceBaseTestObject(
                _mockHeaderManager.Object,
                _mockModelMapper.Object,
                _mockRateLimit.Object);

            // act
            var result = service.GetPagingInfoTestMethod();

            // assert
            Assert.Equal(TOTAL_COUNT, result.TotalCount);
            Assert.Equal(PAGE_SIZE, result.PageSize);
        }
Beispiel #7
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();
        }