public CertificatePrintStatusUpdateHandlerTestsFixture() { _certificateRepository = new Mock <ICertificateRepository>(); _batchLogQueryRepository = new Mock <IBatchLogQueryRepository>(); _mediator = new Mock <IMediator>(); _logger = new Mock <ILogger <CertificatePrintStatusUpdateHandler> >(); _sut = new CertificatePrintStatusUpdateHandler(_certificateRepository.Object, _batchLogQueryRepository.Object, _mediator.Object, _logger.Object); }
public void BaseArrange() { _certificateRepository = new Mock <ICertificateRepository>(); _certificateBatchLogRepository = new Mock <ICertificateBatchLogRepository>(); _mediator = new Mock <IMediator>(); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReference1))) .Returns((string certificateReference) => Task.FromResult( new Certificate { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch111SentToPrinterAt, BatchNumber = _batch111, Status = CertificateStatus.SentToPrinter, ToBePrinted = _batch111SentToPrinterAt })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReference1), _batch111)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch111SentToPrinterAt, BatchNumber = batchNumber, Status = CertificateStatus.SentToPrinter, StatusAt = _batch111SentToPrinterAt })); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReference2, _certificateReference3))) .Returns((string certificateReference) => Task.FromResult( new Certificate { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch222PrintNotifiedAt, BatchNumber = _batch222, Status = CertificateStatus.Printed, ToBePrinted = _batch222SentToPrinterAt })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReference2, _certificateReference3), _batch222)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch222PrintNotifiedAt, BatchNumber = batchNumber, Status = CertificateStatus.Printed, StatusAt = _batch222PrintedAt })); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReference4))) .Returns((string certificateReference) => Task.FromResult <Certificate>(null)); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReference5))) .Returns((string certificateReference) => Task.FromResult( new Certificate { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = DateTime.UtcNow.AddDays(1), BatchNumber = _batch222, Status = CertificateStatus.Delivered })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReference5), _batch222)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _deliveredAtNotifiedAt, BatchNumber = batchNumber, Status = CertificateStatus.Delivered, StatusAt = _deliveredAt })); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReferenceReprintedAfterPrinted))) .Returns((string certificateReference) => Task.FromResult( new Certificate { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _certificateReferenceReprintedAfterPrintedAt, BatchNumber = null, Status = CertificateStatus.Reprint, })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReferenceReprintedAfterPrinted), _batch111)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch111SentToPrinterAt, BatchNumber = batchNumber, Status = CertificateStatus.SentToPrinter, StatusAt = _batch111SentToPrinterAt })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReferenceReprintedAfterPrinted), _batch222)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch222PrintNotifiedAt, BatchNumber = batchNumber, Status = CertificateStatus.Printed, StatusAt = _batch222PrintedAt })); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReferenceDeletedAfterPrinted))) .Returns((string certificateReference) => Task.FromResult( new Certificate { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _certificateReferenceDeletedAfterPrintedAt, BatchNumber = _batch222, Status = CertificateStatus.Deleted })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReferenceDeletedAfterPrinted), _batch222)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, UpdatedAt = _batch222PrintNotifiedAt, BatchNumber = batchNumber, Status = CertificateStatus.Printed, StatusAt = _batch222PrintedAt })); _certificateBatchLogRepository.Setup(r => r.GetCertificateBatchLog(It.IsIn(_certificateReference5), _batch111)) .Returns((string certificateReference, int batchNumber) => Task.FromResult( new CertificateBatchLog { Id = Guid.NewGuid(), CertificateReference = certificateReference, Status = CertificateStatus.Delivered, StatusAt = DateTime.UtcNow.AddDays(1) })); _certificateRepository.Setup(r => r.GetCertificate(It.IsIn(_certificateReference4))) .Returns((string certificateReference) => Task.FromResult <Certificate>(null)); _certificateRepository.Setup(r => r.UpdatePrintStatus(It.IsAny <Certificate>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <string>(), It.IsAny <bool>())) .Returns(Task.CompletedTask); _mediator.Setup(r => r.Send(It.Is <GetBatchLogRequest>(p => new[] { _batch111, _batch222 }.Contains(p.BatchNumber)), It.IsAny <CancellationToken>())) .Returns((GetBatchLogRequest request, CancellationToken token) => Task.FromResult(new BatchLogResponse { BatchNumber = request.BatchNumber })); _mediator.Setup(r => r.Send(It.Is <GetBatchLogRequest>(p => !(new[] { _batch111, _batch222 }.Contains(p.BatchNumber))), It.IsAny <CancellationToken>())) .Returns((GetBatchLogRequest request, CancellationToken token) => Task.FromResult <BatchLogResponse>(null)); _logger = new Mock <ILogger <CertificatePrintStatusUpdateHandler> >(); _sut = new CertificatePrintStatusUpdateHandler(_certificateRepository.Object, _certificateBatchLogRepository.Object, _mediator.Object, _logger.Object); }