public async Task <ValidationResponse> ProcessCertificatesPrintStatusUpdate(CertificatePrintStatusUpdate certificatePrintStatusUpdate)
        {
            var model = new CertificatesPrintStatusUpdateRequest()
            {
                BatchNumber          = certificatePrintStatusUpdate.BatchNumber,
                CertificateReference = certificatePrintStatusUpdate.CertificateReference,
                ReasonForChange      = certificatePrintStatusUpdate.ReasonForChange,
                Status   = certificatePrintStatusUpdate.Status,
                StatusAt = certificatePrintStatusUpdate.StatusAt
            };

            return(await _assessorServiceApiClient.UpdateCertificatesPrintStatus(model));
        }
        private async Task <CertificatePrintStatusUpdate> Validate(CertificatePrintStatusUpdate certificatePrintStatus, ValidationResponse validationResult)
        {
            if (!CertificateStatus.HasPrintNotificateStatus(certificatePrintStatus.Status))
            {
                validationResult.Errors.Add(
                    new ValidationErrorDetail("CertificatePrintStatuses", $"The certificate status {certificatePrintStatus.Status} is not a valid print notification status.", ValidationStatusCode.BadRequest));
            }

            if (!await IsValidBatchNumber(certificatePrintStatus.BatchNumber))
            {
                validationResult.Errors.Add(
                    new ValidationErrorDetail("BatchNumber", $"The batch number {certificatePrintStatus.BatchNumber} was not found.", ValidationStatusCode.NotFound));
            }

            return(validationResult.Errors.Count == 0
                ? certificatePrintStatus
                : null);
        }
Ejemplo n.º 3
0
        public async Task Then_AssessorApiCalled_ToGetBatch()
        {
            // Arrange
            var sut = new Domain.Print.Services.CertificateService(_mockAssessorServiceApiClient.Object, _mockLogger.Object);
            var certificatePrintStatusUpdate = new CertificatePrintStatusUpdate
            {
                BatchNumber          = 1,
                CertificateReference = "00010111",
                ReasonForChange      = "",
                Status   = CertificateStatus.Delivered,
                StatusAt = DateTime.UtcNow
            };

            // Act
            await sut.ProcessCertificatesPrintStatusUpdate(certificatePrintStatusUpdate);

            // Assert
            _mockAssessorServiceApiClient.Verify(v => v.UpdateCertificatesPrintStatus(
                                                     It.Is <CertificatesPrintStatusUpdateRequest>(c => JsonConvert.SerializeObject(c).Equals(JsonConvert.SerializeObject(certificatePrintStatusUpdate)))),
                                                 Times.Once);
        }