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_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')");
        }
        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);
        }