Beispiel #1
0
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, bool isActiveAssessment, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, uln, isActiveAssessment);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            TqPathwayAssessment expectedAssessment = null;

            if (isActiveAssessment)
            {
                expectedAssessment = _pathwayAssessments.FirstOrDefault(pa => pa.IsOptedin && pa.EndDate == null && pa.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln);
            }
            else
            {
                expectedAssessment = _pathwayAssessments.FirstOrDefault(pa => !pa.IsOptedin && pa.EndDate != null && pa.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln);
            }

            expectedAssessment.Should().NotBeNull();

            var expectedAssessmentDetails = new AssessmentEntryDetails
            {
                ProfileId            = expectedAssessment.TqRegistrationPathway.TqRegistrationProfileId,
                AssessmentId         = expectedAssessment.Id,
                AssessmentSeriesName = expectedAssessment.AssessmentSeries.Name
            };

            // Assert
            _result.ProfileId.Should().Be(expectedAssessmentDetails.ProfileId);
            _result.AssessmentId.Should().Be(expectedAssessmentDetails.AssessmentId);
            _result.AssessmentSeriesName.Should().Be(expectedAssessmentDetails.AssessmentSeriesName);
        }
        public List <TqPathwayResult> GetPathwayResultDataToProcess(TqPathwayAssessment pathwayAssessment, bool seedPathwayResultsAsActive = true, bool isHistorical = false, bool isBulkUpload = true)
        {
            var tqPathwayResults = new List <TqPathwayResult>();

            if (isHistorical)
            {
                // Historical record
                var pathwayResult = new TqPathwayResultBuilder().Build(pathwayAssessment, isBulkUpload: isBulkUpload);
                pathwayResult.IsOptedin = false;
                pathwayResult.EndDate   = DateTime.UtcNow.AddDays(-1);

                var tqPathwayResultHistorical = TqPathwayResultDataProvider.CreateTqPathwayResult(DbContext, pathwayResult);
                tqPathwayResults.Add(tqPathwayResultHistorical);
            }

            var activePathwayResult = new TqPathwayResultBuilder().Build(pathwayAssessment, isBulkUpload: isBulkUpload);
            var tqPathwayResult     = TqPathwayResultDataProvider.CreateTqPathwayResult(DbContext, activePathwayResult);

            if (!seedPathwayResultsAsActive)
            {
                tqPathwayResult.IsOptedin = pathwayAssessment.TqRegistrationPathway.Status == RegistrationPathwayStatus.Withdrawn ? true : false;
                tqPathwayResult.EndDate   = DateTime.UtcNow;
            }

            tqPathwayResults.Add(tqPathwayResult);
            return(tqPathwayResults);
        }
        public async Task WhenAsync(long aoUkprn, int assessmentId)
        {
            if (_result != null)
            {
                return;
            }

            _result = await AssessmentRepository.GetPathwayAssessmentDetailsAsync(aoUkprn, assessmentId);
        }
Beispiel #4
0
 private void ValidateTqPathwayAssessments(TqPathwayAssessment expectedAssessment, TqPathwayAssessment actualAssessment)
 {
     actualAssessment.TqRegistrationPathwayId.Should().Be(expectedAssessment.TqRegistrationPathwayId);
     actualAssessment.AssessmentSeriesId.Should().Be(expectedAssessment.AssessmentSeriesId);
     actualAssessment.StartDate.Should().Be(expectedAssessment.StartDate);
     actualAssessment.EndDate.Should().Be(expectedAssessment.EndDate);
     actualAssessment.IsOptedin.Should().Be(expectedAssessment.IsOptedin);
     actualAssessment.IsBulkUpload.Should().Be(expectedAssessment.IsBulkUpload);
     actualAssessment.Id.Should().Be(expectedAssessment.Id);
 }
Beispiel #5
0
        private static void AssertPathwayAssessment(TqPathwayAssessment actualAssessment, TqPathwayAssessment expectedAssessment)
        {
            actualAssessment.Should().NotBeNull();
            actualAssessment.TqRegistrationPathwayId.Should().Be(expectedAssessment.TqRegistrationPathwayId);
            actualAssessment.AssessmentSeriesId.Should().Be(expectedAssessment.AssessmentSeriesId);
            actualAssessment.IsOptedin.Should().BeTrue();
            actualAssessment.IsBulkUpload.Should().BeTrue();

            if (actualAssessment.TqRegistrationPathway.Status == Common.Enum.RegistrationPathwayStatus.Active)
            {
                actualAssessment.EndDate.Should().BeNull();
            }
            else
            {
                actualAssessment.EndDate.Should().NotBeNull();
            }
        }
Beispiel #6
0
 public void AssertPathwayAssessment(TqPathwayAssessment actualPathwayAssessment, TqPathwayAssessment expectedPathwayAssessment)
 {
     actualPathwayAssessment.TqRegistrationPathwayId.Should().Be(expectedPathwayAssessment.TqRegistrationPathwayId);
     actualPathwayAssessment.AssessmentSeriesId.Should().Be(expectedPathwayAssessment.AssessmentSeriesId);
     actualPathwayAssessment.IsOptedin.Should().Be(expectedPathwayAssessment.IsOptedin);
     actualPathwayAssessment.IsBulkUpload.Should().Be(actualPathwayAssessment.IsBulkUpload);
     actualPathwayAssessment.StartDate.ToShortDateString().Should().Be(expectedPathwayAssessment.StartDate.ToShortDateString());
     if (expectedPathwayAssessment.EndDate != null)
     {
         actualPathwayAssessment.EndDate.Value.ToShortDateString().Should().Be(expectedPathwayAssessment.EndDate.Value.ToShortDateString());
     }
     else
     {
         actualPathwayAssessment.EndDate.Should().BeNull();
     }
     actualPathwayAssessment.CreatedBy.Should().Be(expectedPathwayAssessment.CreatedBy);
 }
        public static TqPathwayAssessment CreateTqPathwayAssessment(ResultsAndCertificationDbContext _dbContext, int tqRegistrationPathwayId, int assessmentSeriesId, DateTime startDate, bool addToDbContext = true)
        {
            var pathwayAssessment = new TqPathwayAssessment
            {
                TqRegistrationPathwayId = tqRegistrationPathwayId,
                AssessmentSeriesId      = assessmentSeriesId,
                StartDate    = startDate,
                IsOptedin    = true,
                IsBulkUpload = false
            };

            if (addToDbContext)
            {
                _dbContext.Add(pathwayAssessment);
            }
            return(pathwayAssessment);
        }
 public TqPathwayResult Build(TqPathwayAssessment tqPathwayAssessment = null, TlLookup tlLookupPathwayComponentGrade = null, bool isBulkUpload = true)
 {
     tqPathwayAssessment ??= new TqPathwayAssessmentBuilder().Build();
     tlLookupPathwayComponentGrade ??= new TlLookupBuilder().Build();
     return(new TqPathwayResult
     {
         TqPathwayAssessmentId = tqPathwayAssessment.Id,
         TqPathwayAssessment = tqPathwayAssessment,
         TlLookupId = tlLookupPathwayComponentGrade.Id,
         TlLookup = tlLookupPathwayComponentGrade,
         StartDate = DateTime.UtcNow,
         IsOptedin = true,
         IsBulkUpload = isBulkUpload,
         CreatedBy = Constants.CreatedByUser,
         CreatedOn = Constants.CreatedOn,
         ModifiedBy = Constants.ModifiedByUser,
         ModifiedOn = Constants.ModifiedOn
     });
 }
Beispiel #9
0
        public async Task WhenAsync(long aoUkprn, long uln, bool isActiveAssessment)
        {
            TqPathwayAssessment pathwayAssessment = null;

            if (isActiveAssessment)
            {
                pathwayAssessment = _pathwayAssessments.FirstOrDefault(pa => pa.IsOptedin && pa.EndDate == null && pa.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln);
            }
            else
            {
                pathwayAssessment = _pathwayAssessments.FirstOrDefault(pa => !pa.IsOptedin && pa.EndDate != null && pa.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln);
            }

            var assessmentId = pathwayAssessment != null ? pathwayAssessment.Id : 0;

            var removeAssessmentEntryRequest = new RemoveAssessmentEntryRequest {
                AoUkprn = aoUkprn, AssessmentId = assessmentId, PerformedBy = "Test User"
            };

            _result = await AssessmentService.RemovePathwayAssessmentEntryAsync(removeAssessmentEntryRequest);
        }
        private bool IsValidActivePathwayAssessment(TqPathwayAssessment pathwayAssessment)
        {
            // 1. Must be an active registration.
            if (pathwayAssessment == null || pathwayAssessment.TqRegistrationPathway.Status != RegistrationPathwayStatus.Active)
            {
                return(false);
            }

            // 2. Must have an active assessment.
            var isActiveAssessment = pathwayAssessment.IsOptedin && pathwayAssessment.EndDate == null;

            if (!isActiveAssessment)
            {
                return(false);
            }

            // 3. Must not have results
            var hasActiveResult = pathwayAssessment.TqPathwayResults.Any(x => x.IsOptedin && x.EndDate == null);

            return(!hasActiveResult);
        }
Beispiel #11
0
        public async Task WhenAsync(long aoUkprn, long uln, bool isActiveAssessment)
        {
            if (_result != null)
            {
                return;
            }

            TqPathwayAssessment pathwayAssessment = null;

            if (isActiveAssessment)
            {
                pathwayAssessment = _pathwayAssessments.FirstOrDefault(pa => pa.IsOptedin && pa.EndDate == null && pa.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln);
            }
            else
            {
                pathwayAssessment = _pathwayAssessments.FirstOrDefault(pa => !pa.IsOptedin && pa.EndDate != null && pa.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln);
            }

            var assessmentId = pathwayAssessment != null ? pathwayAssessment.Id : 0;

            _result = await AssessmentService.GetActivePathwayAssessmentEntryDetailsAsync(aoUkprn, assessmentId);
        }
Beispiel #12
0
        public static void AssertPathwayAssessment(TqPathwayAssessment actualAssessment, TqPathwayAssessment expectedAssessment, bool isRejoin = false)
        {
            actualAssessment.Should().NotBeNull();
            if (!isRejoin)
            {
                actualAssessment.TqRegistrationPathwayId.Should().Be(expectedAssessment.TqRegistrationPathwayId);
            }

            actualAssessment.TqRegistrationPathway.TqProviderId.Should().Be(expectedAssessment.TqRegistrationPathway.TqProviderId);
            actualAssessment.AssessmentSeriesId.Should().Be(expectedAssessment.AssessmentSeriesId);
            actualAssessment.IsOptedin.Should().BeTrue();
            actualAssessment.IsBulkUpload.Should().BeFalse();

            if (actualAssessment.TqRegistrationPathway.Status == RegistrationPathwayStatus.Active)
            {
                actualAssessment.EndDate.Should().BeNull();
            }
            else
            {
                actualAssessment.EndDate.Should().NotBeNull();
            }
        }
        public IList <TqPathwayResult> BuildList(TqPathwayAssessment tqPathwayAssessment = null, bool isBulkUpload = true)
        {
            tqPathwayAssessment ??= new TqPathwayAssessmentBuilder().Build();
            var tlLookupPathwayComponentGrades = new TlLookupBuilder().BuildList();

            var TqPathwayResults = new List <TqPathwayResult> {
                new TqPathwayResult
                {
                    TqPathwayAssessmentId = tqPathwayAssessment.Id,
                    TqPathwayAssessment   = tqPathwayAssessment,
                    TlLookupId            = tlLookupPathwayComponentGrades[0].Id,
                    StartDate             = DateTime.UtcNow,
                    IsOptedin             = true,
                    IsBulkUpload          = isBulkUpload,
                    CreatedBy             = Constants.CreatedByUser,
                    CreatedOn             = Constants.CreatedOn,
                    ModifiedBy            = Constants.ModifiedByUser,
                    ModifiedOn            = Constants.ModifiedOn
                },
                new TqPathwayResult
                {
                    TqPathwayAssessmentId = tqPathwayAssessment.Id,
                    TqPathwayAssessment   = tqPathwayAssessment,
                    TlLookupId            = tlLookupPathwayComponentGrades[1].Id,
                    StartDate             = DateTime.UtcNow,
                    IsOptedin             = true,
                    IsBulkUpload          = isBulkUpload,
                    CreatedBy             = Constants.CreatedByUser,
                    CreatedOn             = Constants.CreatedOn,
                    ModifiedBy            = Constants.ModifiedByUser,
                    ModifiedOn            = Constants.ModifiedOn
                }
            };

            return(TqPathwayResults);
        }
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, int profileId, RegistrationPathwayStatus status, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, profileId);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            var expectedRegistration = _registrations.SingleOrDefault(x => x.UniqueLearnerNumber == uln);

            expectedRegistration.Should().NotBeNull();

            TqRegistrationPathway expectedPathway = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate != null);
            }
            else
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate == null);
            }

            expectedPathway.Should().NotBeNull();

            TqRegistrationSpecialism expectedSpecialim = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate != null);
            }
            else
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate == null);
            }

            TqPathwayAssessment expectedPathwayAssessment = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null);
            }

            var expectedAssessmentDetails = new ResultDetails
            {
                ProfileId     = expectedRegistration.Id,
                Uln           = expectedRegistration.UniqueLearnerNumber,
                Firstname     = expectedRegistration.Firstname,
                Lastname      = expectedRegistration.Lastname,
                ProviderUkprn = expectedPathway.TqProvider.TlProvider.UkPrn,
                ProviderName  = expectedPathway.TqProvider.TlProvider.Name,
                Status        = expectedPathway.Status
            };

            // Assert
            _result.ProfileId.Should().Be(expectedAssessmentDetails.ProfileId);
            _result.Uln.Should().Be(expectedAssessmentDetails.Uln);
            _result.Firstname.Should().Be(expectedAssessmentDetails.Firstname);
            _result.Lastname.Should().Be(expectedAssessmentDetails.Lastname);
            _result.ProviderUkprn.Should().Be(expectedAssessmentDetails.ProviderUkprn);
            _result.ProviderName.Should().Be(expectedAssessmentDetails.ProviderName);
            _result.Status.Should().Be(expectedAssessmentDetails.Status);
        }
Beispiel #15
0
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, int profileId, RegistrationPathwayStatus status, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, profileId);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            var expectedRegistration = _registrations.SingleOrDefault(x => x.UniqueLearnerNumber == uln);

            expectedRegistration.Should().NotBeNull();

            TqRegistrationPathway expectedPathway = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate != null);
            }
            else
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate == null);
            }

            expectedPathway.Should().NotBeNull();

            TqRegistrationSpecialism expectedSpecialim = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate != null);
            }
            else
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate == null);
            }

            TqPathwayAssessment expectedPathwayAssessment = null;
            TqPathwayResult     expectedPathwayResult     = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null);
                expectedPathwayResult     = expectedPathwayAssessment?.TqPathwayResults.FirstOrDefault(x => x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null);
                expectedPathwayResult     = expectedPathwayAssessment?.TqPathwayResults.FirstOrDefault(x => x.IsOptedin && x.EndDate == null);
            }

            TqSpecialismAssessment expectedSpecialismAssessment = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialismAssessment = _specialismAssessments.FirstOrDefault(x => x.TqRegistrationSpecialismId == expectedSpecialim.Id && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedSpecialismAssessment = _specialismAssessments.FirstOrDefault(x => x.TqRegistrationSpecialismId == expectedSpecialim.Id && x.IsOptedin && x.EndDate == null);
            }

            var expectedAssessmentDetails = new AssessmentDetails
            {
                ProfileId               = expectedRegistration.Id,
                Uln                     = expectedRegistration.UniqueLearnerNumber,
                Firstname               = expectedRegistration.Firstname,
                Lastname                = expectedRegistration.Lastname,
                ProviderUkprn           = expectedPathway.TqProvider.TlProvider.UkPrn,
                ProviderName            = expectedPathway.TqProvider.TlProvider.Name,
                PathwayLarId            = expectedPathway.TqProvider.TqAwardingOrganisation.TlPathway.LarId,
                PathwayName             = expectedPathway.TqProvider.TqAwardingOrganisation.TlPathway.Name,
                PathwayAssessmentSeries = expectedPathwayAssessment?.AssessmentSeries.Name,
                PathwayAssessmentId     = expectedPathwayAssessment != null ? expectedPathwayAssessment.Id : (int?)null,

                SpecialismLarId            = expectedSpecialim?.TlSpecialism.LarId,
                SpecialismName             = expectedSpecialim?.TlSpecialism.Name,
                SpecialismAssessmentSeries = expectedSpecialismAssessment?.AssessmentSeries.Name,
                SpecialismAssessmentId     = expectedSpecialismAssessment != null ? expectedSpecialismAssessment.Id : (int?)null,
                Status = expectedPathway.Status,

                PathwayResultId = expectedPathwayResult?.Id
            };

            var expectedIsIndustryPlacementExist = expectedRegistration.TqRegistrationPathways.FirstOrDefault().IndustryPlacements.Any();

            // Assert
            _result.ProfileId.Should().Be(expectedAssessmentDetails.ProfileId);
            _result.Uln.Should().Be(expectedAssessmentDetails.Uln);
            _result.Firstname.Should().Be(expectedAssessmentDetails.Firstname);
            _result.Lastname.Should().Be(expectedAssessmentDetails.Lastname);
            _result.ProviderUkprn.Should().Be(expectedAssessmentDetails.ProviderUkprn);
            _result.ProviderName.Should().Be(expectedAssessmentDetails.ProviderName);
            _result.PathwayLarId.Should().Be(expectedAssessmentDetails.PathwayLarId);
            _result.PathwayName.Should().Be(expectedAssessmentDetails.PathwayName);
            _result.PathwayAssessmentSeries.Should().Be(expectedAssessmentDetails.PathwayAssessmentSeries);
            _result.PathwayAssessmentId.Should().Be(expectedAssessmentDetails.PathwayAssessmentId);
            _result.SpecialismLarId.Should().Be(expectedAssessmentDetails.SpecialismLarId);
            _result.SpecialismName.Should().Be(expectedAssessmentDetails.SpecialismName);
            _result.SpecialismAssessmentSeries.Should().Be(expectedAssessmentDetails.SpecialismAssessmentSeries);
            _result.SpecialismAssessmentId.Should().Be(expectedAssessmentDetails.SpecialismAssessmentId);
            _result.Status.Should().Be(expectedAssessmentDetails.Status);
            _result.PathwayResultId.Should().Be(expectedAssessmentDetails.PathwayResultId);
            _result.IsIndustryPlacementExist.Should().Be(expectedIsIndustryPlacementExist);
        }
        public async Task Then_Expected_Results_Are_Returned(long aoUkprn, long uln, int profileId, RegistrationPathwayStatus status, bool hasAssessments, bool expectedResponse)
        {
            await WhenAsync(aoUkprn, profileId);

            if (_result == null)
            {
                expectedResponse.Should().BeFalse();
                return;
            }

            // Expected result
            var expectedRegistration = _registrations.SingleOrDefault(x => x.UniqueLearnerNumber == uln);

            expectedRegistration.Should().NotBeNull();

            TqRegistrationPathway expectedPathway = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate != null);
            }
            else
            {
                expectedPathway = expectedRegistration.TqRegistrationPathways.FirstOrDefault(p => p.Status == status && p.EndDate == null);
            }

            expectedPathway.Should().NotBeNull();

            TqRegistrationSpecialism expectedSpecialim = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate != null);
            }
            else
            {
                expectedSpecialim = expectedPathway.TqRegistrationSpecialisms.FirstOrDefault(s => s.IsOptedin && s.EndDate == null);
            }

            TqPathwayAssessment expectedPathwayAssessment = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayAssessment = _pathwayAssessments.FirstOrDefault(x => x.TqRegistrationPathway.TqRegistrationProfile.UniqueLearnerNumber == uln && x.IsOptedin && x.EndDate == null);
            }

            TqPathwayResult expectedPathwayResult = null;

            if (status == RegistrationPathwayStatus.Withdrawn)
            {
                expectedPathwayResult = _pathwayResults.FirstOrDefault(x => expectedPathwayAssessment != null && x.TqPathwayAssessmentId == expectedPathwayAssessment.Id && x.IsOptedin && x.EndDate != null);
            }
            else
            {
                expectedPathwayResult = _pathwayResults.FirstOrDefault(x => expectedPathwayAssessment != null && x.TqPathwayAssessmentId == expectedPathwayAssessment.Id && x.IsOptedin && x.EndDate == null);
            }

            _result.Should().NotBeNull();

            // Actual result
            var actualPathway           = _result;
            var actualSpecialism        = actualPathway.TqRegistrationSpecialisms.FirstOrDefault();
            var actualPathwayAssessment = actualPathway.TqPathwayAssessments.FirstOrDefault();

            // Assert Registration Pathway
            actualPathway.TqRegistrationProfileId.Should().Be(expectedPathway.TqRegistrationProfileId);
            actualPathway.TqProviderId.Should().Be(expectedPathway.TqProviderId);
            actualPathway.AcademicYear.Should().Be(expectedPathway.AcademicYear);
            actualPathway.StartDate.Should().Be(expectedPathway.StartDate);
            actualPathway.EndDate.Should().Be(expectedPathway.EndDate);
            actualPathway.Status.Should().Be(expectedPathway.Status);

            // Assert Registration Specialism
            actualSpecialism.TqRegistrationPathwayId.Should().Be(expectedSpecialim.TqRegistrationPathwayId);
            actualSpecialism.TlSpecialismId.Should().Be(expectedSpecialim.TlSpecialismId);
            actualSpecialism.StartDate.Should().Be(expectedSpecialim.StartDate);
            actualSpecialism.EndDate.Should().Be(expectedSpecialim.EndDate);
            actualSpecialism.IsOptedin.Should().Be(expectedSpecialim.IsOptedin);

            // Assert Assessments
            if (hasAssessments)
            {
                AssertPathwayAssessment(actualPathwayAssessment, expectedPathwayAssessment);
                AssertPathwayResult(expectedPathwayResult, expectedPathwayResult);
            }
        }
        public static TqPathwayAssessment CreateTqPathwayAssessment(ResultsAndCertificationDbContext _dbContext, TqPathwayAssessment pathwayAssessment, bool addToDbContext = true)
        {
            if (pathwayAssessment == null)
            {
                pathwayAssessment = new TqPathwayAssessmentBuilder().Build();
            }

            if (addToDbContext)
            {
                _dbContext.Add(pathwayAssessment);
            }
            return(pathwayAssessment);
        }