public async void SaveAllTest()
        {
            // Arrange
            var mockLogManager = new Mock <ILogManager>();
            var mockCertificateOfInsuranceValidator  = new Mock <ICertificateOfInsuranceValidator>();
            var mockCertificateOfInsuranceRepository = new Mock <ICertificateOfInsuranceRepository>();
            var mockCertificateOfInsurances          = new List <ICertificateOfInsurance> {
                new Mock <ICertificateOfInsurance>().Object
            };
            var mockFileUploadApplicationService = new Mock <IFileUploadApplicationService>();

            // Setup mock methods/properties
            mockCertificateOfInsuranceRepository.Setup(x => x.SaveAllAsync(It.IsAny <IReadOnlyList <ICertificateOfInsurance> >()))
            .Returns(Task.FromResult(new SaveResponse <IReadOnlyList <ICertificateOfInsurance> > {
                Message = "Successful."
            }));

            // Act
            var sut = new CertificateOfInsuranceApplicationService(
                mockLogManager.Object, mockCertificateOfInsuranceRepository.Object, mockCertificateOfInsuranceValidator.Object,
                mockFileUploadApplicationService.Object);
            var response = await sut.SaveAllAsync(mockCertificateOfInsurances);

            // Assert
            response.IsSuccessful.Should().BeTrue();
            response.Errors.Count.Should().Be(0);
            response.Message.Should().NotBeNullOrEmpty();

            // Verify the application service is calling the correct repository method.
            mockCertificateOfInsuranceRepository.Verify(x => x.SaveAllAsync(It.IsAny <IReadOnlyList <ICertificateOfInsurance> >()));
        }
        public async void SaveAllErrorTest()
        {
            // Arrange
            var mockLogManager = new Mock <ILogManager>();
            var mockCertificateOfInsuranceValidator  = new Mock <ICertificateOfInsuranceValidator>();
            var mockCertificateOfInsuranceRepository = new Mock <ICertificateOfInsuranceRepository>();
            var mockCertificateOfInsurances          = new List <ICertificateOfInsurance> {
                new Mock <ICertificateOfInsurance>().Object
            };
            var mockFileUploadApplicationService = new Mock <IFileUploadApplicationService>();

            // Setup mock methods/properties
            mockCertificateOfInsuranceRepository.Setup(x => x.SaveAllAsync(It.IsAny <IReadOnlyList <ICertificateOfInsurance> >()))
            .Throws(new Exception());

            // Act
            var sut = new CertificateOfInsuranceApplicationService(
                mockLogManager.Object, mockCertificateOfInsuranceRepository.Object, mockCertificateOfInsuranceValidator.Object,
                mockFileUploadApplicationService.Object);
            var response = await sut.SaveAllAsync(mockCertificateOfInsurances);

            // Assert
            response.IsSuccessful.Should().BeFalse();
            response.Errors.Count.Should().BeGreaterThan(0);
            response.Message.Should().NotBeNullOrEmpty();

            // Verify the application service is calling the correct repository method.
            mockCertificateOfInsuranceRepository.Verify(x => x.SaveAllAsync(It.IsAny <IReadOnlyList <ICertificateOfInsurance> >()));

            // Verify the application service is logging the error.
            mockLogManager.Verify(x => x.LogError(It.IsAny <Exception>(), It.IsAny <string>()));
        }