public async Task ThenReturnsNullWhenNoLearnerRecord( [Frozen] Mock <IStandardService> standardService, [Frozen] Mock <ILearnerRepository> learnerRepository, Standard latestStandard, GetCalculatedStandardVersionForApprenticeshipRequest request, GetCalculatedStandardVersionForApprenticeshipHandler sut) { standardService.Setup(s => s.GetStandardVersionById(request.StandardId, null)).ReturnsAsync(latestStandard); learnerRepository.Setup(s => s.Get(request.Uln, latestStandard.LarsCode)).ReturnsAsync((Domain.Entities.Learner)null); //Act var result = await sut.Handle(request, new CancellationToken()); //Assert result.Should().BeNull(); }
public async Task ThenSelectsCorrectVersionBasedOnLearnerStartDate_WhenLatestVersionStartDateIsNull( [Frozen] Mock <IStandardService> standardService, [Frozen] Mock <ILearnerRepository> learnerRepository, GetCalculatedStandardVersionForApprenticeshipRequest request, IEnumerable <Standard> standards, DateTime baseDate, int baseVersion, int larsCode, Domain.Entities.Learner learnerRecord, GetCalculatedStandardVersionForApprenticeshipHandler sut) { //Arrange //List defaults to 3 records in autofixture // Set learner date for last version learnerRecord.LearnStartDate = baseDate.AddYears(2); foreach (var s in standards) { s.Version = baseVersion.ToString(); s.VersionLatestStartDate = baseDate; s.LarsCode = larsCode; baseVersion++; baseDate = baseDate.AddYears(1); } // Set latest Standard EndDate to null var latestVersion = standards.OrderByDescending(d => d.Version).First(); latestVersion.VersionLatestStartDate = null; standardService.Setup(s => s.GetStandardVersionById(request.StandardId, null)).ReturnsAsync(latestVersion); standardService.Setup(s => s.GetStandardVersionsByLarsCode(larsCode)).ReturnsAsync(standards); learnerRepository.Setup(s => s.Get(request.Uln, larsCode)).ReturnsAsync(learnerRecord); //Act var result = await sut.Handle(request, new CancellationToken()); //Assert result.Should().BeEquivalentTo(latestVersion); }