public void SetUp()
        {
            _autoFixture = new Fixture();
            _source      = _autoFixture.Create <ReservationValidationRequest>();

            _mapper = new ReservationValidationRequestToValidationReservationMessageMapper();
        }
        private async Task <IEnumerable <DomainError> > BuildReservationValidationFailures(EditApprenticeshipValidationRequest request, Apprenticeship apprenticeship)
        {
            List <DomainError> errors = new List <DomainError>();

            if (request.StartDate.HasValue && !string.IsNullOrWhiteSpace(request.CourseCode))
            {
                var validationRequest = new ReservationValidationRequest(apprenticeship.ReservationId.Value, request.StartDate.Value, request.CourseCode);
                var validationResult  = await _reservationValidationService.Validate(validationRequest, CancellationToken.None);

                errors = validationResult.ValidationErrors.Select(error => new DomainError(error.PropertyName, error.Reason)).ToList();
            }

            return(errors);
        }
        private async Task ValidateReservation(DraftApprenticeshipDetails details, CancellationToken cancellationToken)
        {
            if (!details.ReservationId.HasValue || !details.StartDate.HasValue || details.TrainingProgramme == null)
            {
                return;
            }

            var validationRequest = new ReservationValidationRequest(details.ReservationId.Value, details.StartDate.Value, details.TrainingProgramme.CourseCode);

            var validationResult = await _reservationValidationService.Validate(validationRequest, cancellationToken);

            var errors = validationResult.ValidationErrors.Select(error => new DomainError(error.PropertyName, error.Reason)).ToList();

            errors.ThrowIfAny();
        }
Beispiel #4
0
        public void Arrange()
        {
            _fixture = new Fixture();

            _validationResult  = _fixture.Create <CommitmentsV2.Domain.Entities.Reservations.ReservationValidationResult>();
            _validationRequest = _fixture.Create <ReservationValidationRequest>();

            _apiRequest = new ReservationValidationMessage();

            _requestMapper = new Mock <IOldMapper <ReservationValidationRequest, ReservationValidationMessage> >();
            _requestMapper.Setup(x => x.Map(It.Is <ReservationValidationRequest>(r => r == _validationRequest)))
            .ReturnsAsync(() => _apiRequest);

            _resultMapper = new Mock <IOldMapper <ReservationValidationResult, CommitmentsV2.Domain.Entities.Reservations.ReservationValidationResult> >();
            _resultMapper.Setup(x => x.Map(It.IsAny <ReservationValidationResult>())).ReturnsAsync(_validationResult);

            _apiClient = new Mock <IReservationsApiClient>();
            _apiClient.Setup(x =>
                             x.ValidateReservation(It.Is <ReservationValidationMessage>(r => r == _apiRequest), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ReservationValidationResult());

            _reservationValidationService =
                new ReservationValidationService(_apiClient.Object, _requestMapper.Object, _resultMapper.Object);
        }
        public async Task <Domain.Entities.Reservations.ReservationValidationResult> Validate(ReservationValidationRequest request, CancellationToken cancellationToken)
        {
            var mappedRequest = await _requestMapper.Map(request);

            var result = await _apiClient.ValidateReservation(mappedRequest, cancellationToken);

            return(await _resultMapper.Map(result));
        }