public async Task Then_the_certificate_is_updated( int?updatedAchievementYear, int?updatedAchievementMonth, int?updatedAchievementDay, string updatedCertificateGrade, string updateCertificateStatus, int?currentLatestEpaYear, int?currentLatestEpaMonth, int?currentLastestEpaDay, string currentLatestEpaOutcome, int?updatedLatestEpaYear, int?updatedLatestEpaMonth, int?updatedLastestEpaDay, string updatedLatestEpaOutcome, int numberOfEpaDetails) { CertificateRepository = new Mock <ICertificateRepository>(); CertificateRepository.Setup(r => r.GetCertificateLogsFor(CertificateId)).ReturnsAsync(new List <CertificateLog>()); var updatedAchievementDate = updatedAchievementYear.HasValue && updatedAchievementMonth.HasValue && updatedAchievementDay.HasValue ? new DateTime(updatedAchievementYear.Value, updatedAchievementMonth.Value, updatedAchievementDay.Value) : (DateTime?)null; var certificateData = Builder <CertificateData> .CreateNew() .With(ecd => ecd.OverallGrade = updatedCertificateGrade) .With(ecd => ecd.AchievementDate = updatedAchievementDate) .Build(); var currentLatestEpaDate = currentLatestEpaYear.HasValue && currentLatestEpaMonth.HasValue && currentLastestEpaDay.HasValue ? new DateTime(currentLatestEpaYear.Value, currentLatestEpaMonth.Value, currentLastestEpaDay.Value) : (DateTime?)null; if (currentLatestEpaDate.HasValue) { certificateData.EpaDetails = new EpaDetails { LatestEpaDate = currentLatestEpaDate.Value, LatestEpaOutcome = currentLatestEpaOutcome, Epas = new List <EpaRecord> { new EpaRecord { EpaDate = currentLatestEpaDate.Value, EpaOutcome = currentLatestEpaOutcome } } }; } var certificate = Builder <Certificate> .CreateNew() .With(c => c.Id = CertificateId) .With(c => c.CertificateReference = CertificateReference) .With(c => c.Status = updateCertificateStatus) .With(c => c.CertificateData = JsonConvert.SerializeObject(certificateData)) .Build(); CertificateRepository.Setup(r => r.Update(It.Is <Certificate>(c => c.CertificateReference == CertificateReference), "user", null, true, null)) .ReturnsAsync(certificate); var updatedLatestEpaDate = updatedLatestEpaYear.HasValue && updatedLatestEpaMonth.HasValue && updatedLastestEpaDay.HasValue ? new DateTime(updatedLatestEpaYear.Value, updatedLatestEpaMonth.Value, updatedLastestEpaDay.Value) : (DateTime?)null; Sut = new UpdateCertificateHandler(CertificateRepository.Object, new Mock <ILogger <UpdateCertificateHandler> >().Object); await Sut.Handle(new UpdateCertificateRequest(certificate) { Username = "******" }, new CancellationToken()); CertificateRepository.Verify(r => r.Update(It.Is <Certificate>(updatedCertificate => VerifyCertificateUpdated(certificate, updatedCertificate, updatedLatestEpaDate, updatedLatestEpaOutcome, numberOfEpaDetails)), "user", null, true, null)); }
public TheFixture() { _certificateRepository = new Mock <ICertificateRepository>(); _mediator = new Mock <IMediator>(); _sut = new UpdateCertificateHandler(_certificateRepository.Object, _mediator.Object, new Mock <ILogger <UpdateCertificateHandler> >().Object); }