Ejemplo n.º 1
0
        public ArrangementsBuilder()
        {
            _mediatorMock = new Mock <IMediator>();
            _createDonationCommandMock = new Mock <ICreateDonationCommand>();
            _loggerMock = new Mock <ILogger <DonationHandler> >();

            _mediatorMock.Setup(s => s.Send(It.IsAny <CalculateGiftAidRequest>(), It.IsAny <CancellationToken>()))
            .Returns((CalculateGiftAidRequest r, CancellationToken c) =>
            {
                _calculateGiftAidRequest = r;
                return(Task.FromResult(_calculateGiftAidResponse));
            });

            _mediatorMock.Setup(s => s.Send(It.IsAny <FileGiftAidDeclarationRequest>(), It.IsAny <CancellationToken>()))
            .Returns((FileGiftAidDeclarationRequest r, CancellationToken c) =>
            {
                _fileGiftAidDeclarationRequest = r;
                return(Task.FromResult(_fileGiftAidDeclarationResponse));
            });

            _createDonationCommandMock.Setup(s => s.Execute(It.IsAny <Data.Model.Donation>(), It.IsAny <CancellationToken>()))
            .Returns((Data.Model.Donation d, CancellationToken c) =>
            {
                _createdDonation = d;
                return(Task.FromResult(true));
            });
        }
        public IActionResult Get([FromQuery] CalculateGiftAidRequest request)
        {
            Log.Information($"Received {nameof(CalculateGiftAidRequest)}: {@request}", request);

            var response = new CalculateGiftAidResponse
            {
                DonationAmount = request.Amount,
                GiftAidAmount  = _giftAidCalculator.Calculate(request.Amount)
            };

            return(new JsonResult(response));
        }
        public void Get_ValidAmount_ReturnsGiftAidAmount()
        {
            var request = new CalculateGiftAidRequest
            {
                Amount = 100m
            };

            _giftAidCalculator.Calculate(request.Amount).Returns(20);
            _controller = new GiftAidController(_giftAidCalculator, _giftAidRepository, _postCodeValidator);

            var response        = _controller.Get(request) as JsonResult;
            var giftAidResponse = response.Value as CalculateGiftAidResponse;

            _giftAidCalculator.Received(1).Calculate(request.Amount);

            Assert.That(giftAidResponse.GiftAidAmount, Is.EqualTo(20));
        }