public async Task <StopApprenticeshipResult> StopApprenticeship(Core.Models.StopApprenticeshipRequest request, CancellationToken token) { try { request.Validate(); await _commitmentApi.StopApprenticeship(request.ApprenticeshipId, new CommitmentsV2.Api.Types.Requests.StopApprenticeshipRequest { AccountId = request.AccountId, MadeRedundant = request.MadeRedundant, StopDate = request.StopDate, UserInfo = new CommitmentsV2.Types.UserInfo { UserId = request.UserId, UserDisplayName = request.DisplayName, UserEmail = request.EmailAddress } }, token); return(new StopApprenticeshipResult { ApprenticeshipId = request.ApprenticeshipId }); } catch (CommitmentsApiModelException cException) { _logger.LogError(cException, "Failure to stop the apprenticeship."); var errorMessages = string.Empty; return(new StopApprenticeshipResult { ApprenticeshipId = request.ApprenticeshipId, ErrorMessage = cException.Errors.Aggregate(errorMessages, (a, b) => a + " " + b.Message) }); } catch (Exception e) { _logger.LogError(e, "Failure to stop the apprenticeship."); return(new StopApprenticeshipResult { ApprenticeshipId = request.ApprenticeshipId, ErrorMessage = e.Message }); } }
public async Task StoppingAnApprenticeship_ReturnsSuccess_WhenApiCallSucceeds(EmployerCommitmentsService sut, Core.Models.StopApprenticeshipRequest request) { //Given //When var result = await sut.StopApprenticeship(request, new CancellationToken()); //Then result.Should().BeEquivalentTo(new StopApprenticeshipResult { ApprenticeshipId = request.ApprenticeshipId }); }
public async Task StoppingAnApprenticeship_ReturnsError_WhenApiCallFails([Frozen] Mock <ICommitmentsApiClient> apiClient, EmployerCommitmentsService sut, Core.Models.StopApprenticeshipRequest request, List <ErrorDetail> errors) { //Given apiClient.Setup(s => s.StopApprenticeship(request.ApprenticeshipId, It.IsAny <CommitmentsV2.Api.Types.Requests.StopApprenticeshipRequest>(), It.IsAny <CancellationToken>())).Throws(new CommitmentsApiModelException(errors)); //When var result = await sut.StopApprenticeship(request, new CancellationToken()); //Then result.HasError.Should().BeTrue(); var errorMessage = GetErrorMessages(errors); result.ErrorMessage.Should().Be(errorMessage); }
public async Task StoppingAnApprenticeship_ReturnsError_WhenPassedInvalidApprenticeshipId(EmployerCommitmentsService sut, Core.Models.StopApprenticeshipRequest request) { //Given request.AccountId = 1; request.ApprenticeshipId = 0; //When var result = await sut.StopApprenticeship(request, new CancellationToken()); //Then result.HasError.Should().BeTrue(); result.ErrorMessage.Should().Be("apprenticeshipId must be greater than 0 (Parameter 'apprenticeshipId')"); }