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 async Task <FileGiftAidDeclarationResponse> Handle(FileGiftAidDeclarationRequest request, CancellationToken cancellationToken) { ValidateRequest(request); var donation = request.Donation; var giftAidDeclaration = new GiftAidDeclaration { Id = Guid.NewGuid(), DonationId = donation.Id, DonationAmount = donation.DonationAmount, GiftAidAmount = donation.GiftAidAmount, GiftAidReference = donation.GiftAidReference, DonorDetails = donation.DonorDetails, Created = DateTimeOffset.Now }; _logger.LogDebug("Filing Gift-Aid declaration with reference {GiftAidReference} for donation with id {DonationId}.", donation.GiftAidReference, request.Donation.Id); await _createGiftAidDeclarationCommand.Execute(giftAidDeclaration, cancellationToken); return(new FileGiftAidDeclarationResponse { Declaration = giftAidDeclaration, }); }
private void ValidateRequest(FileGiftAidDeclarationRequest request) { _logger.LogDebug("Validating request"); if (request == null) { throw new ArgumentNullException(nameof(request)); } if (request.Donation == null) { throw new ArgumentNullException($"{nameof(request)}.{nameof(request.Donation)}"); } }