public void ShouldPatchTrainingCourseChanges()
        {
            var candidateId = Guid.NewGuid();
            var traineeshipApplicationProvider = new ApprenticeshipApplicationProviderBuilder().Build();
            var savedTraineeshipViewModel      = new ApprenticeshipApplicationViewModelBuilder().Build();

            var trainingCourses = new[]
            {
                new TrainingCourseViewModelBuilder()
                .WithProvider("Provider")
                .Build()
            };

            var traineeshipViewModel = new ApprenticeshipApplicationViewModelBuilder()
                                       .WithTrainingCourses(trainingCourses)
                                       .Build();

            var viewModel = traineeshipApplicationProvider
                            .PatchApplicationViewModel(candidateId, savedTraineeshipViewModel, traineeshipViewModel);

            viewModel.Should().NotBeNull();
            viewModel.ViewModelMessage.Should().BeNull();
            viewModel.HasError().Should().BeFalse();
            viewModel.Candidate.HasTrainingCourses.Should().BeTrue();
            viewModel.Candidate.TrainingCourses.Should().Equal(trainingCourses);
        }
        public void ShouldPatchWorkExperienceChanges()
        {
            var candidateId = Guid.NewGuid();
            var apprenticeshipApplicationProvider = new ApprenticeshipApplicationProviderBuilder().Build();
            var savedViewModel = new ApprenticeshipApplicationViewModelBuilder().Build();

            var workExperience = new[]
            {
                new WorkExperienceViewModelBuilder()
                .WithDescription("Work")
                .WithEmployer("Employer")
                .Build()
            };

            var newViewModel     = new ApprenticeshipApplicationViewModelBuilder().WithWorkExperience(workExperience).Build();
            var patchedViewModel = apprenticeshipApplicationProvider.PatchApplicationViewModel(candidateId, savedViewModel, newViewModel);

            patchedViewModel.Should().NotBeNull();
            patchedViewModel.ViewModelMessage.Should().BeNull();
            patchedViewModel.HasError().Should().BeFalse();
            patchedViewModel.Candidate.HasWorkExperience.Should().BeTrue();
            patchedViewModel.Candidate.WorkExperience.Should().Equal(workExperience);
        }