public void Setup() { _request = _fixture.Create <DebitApplicationRequest>(); _mediator = new Mock <IMediator>(); _controller = new FunctionsController(_mediator.Object, Mock.Of <Microsoft.Extensions.Logging.ILogger <FunctionsController> >()); }
public void Setup() { _debitApplicationCommand = _fixture.Create <DebitApplicationCommand>(); _getApplicationResponse = _fixture.Create <GetApplicationResponse>(); _coursesApiResponse = _fixture.Create <GetStandardsListItem>(); var applicationApiResponse = new ApiResponse <DebitApplicationRequest>(new DebitApplicationRequest(_debitApplicationCommand.ApplicationId, new DebitApplicationRequest.DebitApplicationRequestData()), HttpStatusCode.OK, string.Empty); _levyTransferMatchingService = new Mock <ILevyTransferMatchingService>(); _coursesApiClient = new Mock <ICoursesApiClient <CoursesApiConfiguration> >(); _levyTransferMatchingService.Setup(x => x.GetApplication(It.Is <GetApplicationRequest>(y => y.GetUrl.Contains(_debitApplicationCommand.ApplicationId.ToString())))) .ReturnsAsync(_getApplicationResponse); _levyTransferMatchingService.Setup(x => x.DebitApplication(It.IsAny <DebitApplicationRequest>())) .Callback <DebitApplicationRequest>(r => _debitApplicationRequest = r) .ReturnsAsync(applicationApiResponse); _coursesApiClient.Setup(x => x.Get <GetStandardsListItem>(It.Is <GetStandardDetailsByIdRequest>(y => y.GetUrl.Contains(_getApplicationResponse.StandardId)))) .ReturnsAsync(_coursesApiResponse); _handler = new DebitApplicationCommandHandler(_levyTransferMatchingService.Object, _coursesApiClient.Object); }
public async Task <IActionResult> DebitApplication(DebitApplicationRequest request) { try { var result = await _mediator.Send(new DebitApplicationCommand { ApplicationId = request.ApplicationId, NumberOfApprentices = request.NumberOfApprentices, Amount = request.Amount }); if (!result.StatusCode.IsSuccess()) { _logger.LogError($"Error attempting to Debit Application {result.ErrorContent}"); } return(new StatusCodeResult((int)result.StatusCode)); } catch (Exception e) { _logger.LogError(e, $"Error attempting to Debit Application"); return(new StatusCodeResult((int)HttpStatusCode.InternalServerError)); } }
public async Task <ApiResponse <DebitApplicationRequest> > DebitApplication(DebitApplicationRequest request) { return(await _levyTransferMatchingApiClient.PostWithResponseCode <DebitApplicationRequest>(request)); }