public void Setup()
 {
     //var repository = _controller.Repository;
     //repository.DataFilename = $"{AppDomain.CurrentDomain.BaseDirectory}\\..\\..\\..\\Vouchers\\data.json";
     // This is to pre-load the vouchers.
     //repository.GetVouchers();
     _controller.Get(0);//preload
 }
Example #2
0
        public void Get_ShouldReturnRequestedNumberOfVouchers()
        {
            for (var i = 0; i < 1000; i++)
            {
                _vouchers.Add(new Voucher
                {
                    Id = new Guid()
                });
            }

            var result = _controller.Get(100);

            Assert.AreEqual(100, result.Count);
        }
        public void Issue_voucher_request_retries_5_after_4_failed_requests()
        {
            //GIVEN
            var requestCount = 0;

            var sut = new VoucherController(_voucherService);

            _mockHttpHandler.Clear();

            var request = _mockHttpHandler.When(_voucherUrl)
                          .Respond((e) =>
            {
                requestCount++;

                if (requestCount < 5)
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadGateway));
                }

                var successfulResponse = GetSuccessfulVoucherResponse();

                return(successfulResponse);
            });

            //WHEN
            sut.Get();

            var numberOfTries = _mockHttpHandler.GetMatchCount(request);

            //THEN
            Assert.Equal(5, numberOfTries);
        }
        public void Issue_voucher_request_throws_voucher_not_found_exception()
        {
            //GIVEN
            var sut = new VoucherController(_voucherService);

            _mockHttpHandler.Clear();

            var request = _mockHttpHandler
                          .When(_voucherUrl)
                          .Respond(HttpStatusCode.NotFound);

            //WHEN
            //THEN
            Assert.Throws <VoucherNotFoundException>(() => sut.Get());
        }