Пример #1
0
        public async void DeleteErrorTest()
        {
            // Arrange
            var mockLogManager                = new Mock <ILogManager>();
            var mockClientRepository          = new Mock <IClientRepository>();
            var mockClientValidator           = new Mock <IClientValidator>();
            var mockClient                    = new Mock <IClient>();
            var mockAddressApplicationService = new Mock <IAddressApplicationService>();
            var mockContactApplicationService = new Mock <IContactApplicationService>();

            // Setup mock methods/ properties
            mockClient.Setup(c => c.Id).Returns(It.IsAny <int>());
            mockClientRepository.Setup(x => x.DeleteAsync(It.IsAny <int>()))
            .Throws(new Exception());

            // Act
            var sut = new ClientApplicationService(
                mockLogManager.Object, mockClientRepository.Object, mockClientValidator.Object, mockAddressApplicationService.Object, mockContactApplicationService.Object);
            var response = await sut.DeleteAsync(It.IsAny <int>());

            // 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.
            mockClientRepository.Verify(x => x.DeleteAsync(It.IsAny <int>()));

            // Verify the application service is logging the error.
            mockLogManager.Verify(x => x.LogError(It.IsAny <Exception>(), It.IsAny <string>()));
        }
Пример #2
0
        public async void SaveAllErrorTest()
        {
            // Arrange
            var mockLogManager                = new Mock <ILogManager>();
            var mockClientRepository          = new Mock <IClientRepository>();
            var mockClientValidator           = new Mock <IClientValidator>();
            var mockAddressApplicationService = new Mock <IAddressApplicationService>();
            var mockContactApplicationService = new Mock <IContactApplicationService>();

            // Setup mock methods/ properties
            mockClientRepository.Setup(x => x.SaveAsync(It.IsAny <IClient>()))
            .Throws(new Exception());
            mockClientValidator.Setup(x => x.ValidateAsync(It.IsNotNull <IClient>(), CancellationToken.None))
            .Returns(Task.FromResult(new ValidationResult()));

            // Act
            var sut = new ClientApplicationService(
                mockLogManager.Object, mockClientRepository.Object, mockClientValidator.Object, mockAddressApplicationService.Object, mockContactApplicationService.Object);
            var response = await sut.SaveAllAsync(new List <IClient> {
                new Client()
            });


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

            // Verify the application service is calling dependent methods
            mockClientRepository.Verify(x => x.SaveAsync(It.IsAny <IClient>()));
            mockClientValidator.Verify(x => x.ValidateAsync(It.IsNotNull <IClient>(), CancellationToken.None));
            mockLogManager.Verify(x => x.LogError(It.IsAny <Exception>(), It.IsAny <string>()));
        }
Пример #3
0
        public async void CreateTest()
        {
            // Arrange
            var mockLogManager                = new Mock <ILogManager>();
            var mockClientRepository          = new Mock <IClientRepository>();
            var mockClientValidator           = new Mock <IClientValidator>();
            var mockAddressApplicationService = new Mock <IAddressApplicationService>();
            var mockContactApplicationService = new Mock <IContactApplicationService>();
            var mockAddressCreateResponse     = new Mock <ICreateResponse <IAddress> >();
            var mockContactCreateResponse     = new Mock <ICreateResponse <IContact> >();

            // Setup mock methods/ properties
            mockAddressCreateResponse.Setup(x => x.IsSuccessful)
            .Returns(true);
            mockContactCreateResponse.Setup(x => x.IsSuccessful)
            .Returns(true);
            mockAddressApplicationService.Setup(x => x.CreateAsync())
            .Returns(Task.FromResult(mockAddressCreateResponse.Object));
            mockContactApplicationService.Setup(x => x.CreateAsync(It.IsAny <int>(), It.IsNotNull <ContactTypeEnum>()))
            .Returns(Task.FromResult(mockContactCreateResponse.Object));

            // Act
            var sut = new ClientApplicationService(
                mockLogManager.Object, mockClientRepository.Object, mockClientValidator.Object, mockAddressApplicationService.Object, mockContactApplicationService.Object);
            var createResponse = await sut.CreateAsync();

            // Assert
            createResponse.IsSuccessful.Should().BeTrue();
            createResponse.Content.Should().NotBeNull();
            createResponse.Content.Id.Should().NotBe(0);

            // Verify the application service is calling the dependent services
            mockAddressApplicationService.Verify(x => x.CreateAsync());
            mockContactApplicationService.Verify(x => x.CreateAsync(It.IsAny <int>(), It.IsNotNull <ContactTypeEnum>()));
        }
Пример #4
0
        public async void GetTest()
        {
            // Arrange
            var mockLogManager                = new Mock <ILogManager>();
            var mockClientRepository          = new Mock <IClientRepository>();
            var mockClientValidator           = new Mock <IClientValidator>();
            var mockClient                    = new Mock <IClient>();
            var mockAddressApplicationService = new Mock <IAddressApplicationService>();
            var mockContactApplicationService = new Mock <IContactApplicationService>();

            // Setup mock methods/ properties
            mockClientRepository.Setup(x => x.GetByIdAsync(It.IsAny <int>()))
            .Returns(Task.FromResult(new GetResponse <IClient> {
                Message = "Successful."
            }));
            mockClient.Setup(c => c.Id).Returns(It.IsAny <int>());

            // Act
            var sut = new ClientApplicationService(
                mockLogManager.Object, mockClientRepository.Object, mockClientValidator.Object, mockAddressApplicationService.Object, mockContactApplicationService.Object);
            var response = await sut.GetAsync(It.IsAny <int>());


            // 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.
            mockClientRepository.Verify(x => x.GetByIdAsync(It.IsAny <int>()));
        }
Пример #5
0
        public async void SaveTest()
        {
            // Arrange
            var mockLogManager                = new Mock <ILogManager>();
            var mockClientRepository          = new Mock <IClientRepository>();
            var mockClientValidator           = new Mock <IClientValidator>();
            var mockClient                    = new Mock <IClient>();
            var mockAddressApplicationService = new Mock <IAddressApplicationService>();
            var mockContactApplicationService = new Mock <IContactApplicationService>();

            // Setup mock methods/ properties
            mockClientRepository.Setup(x => x.SaveAsync(It.IsAny <IClient>()))
            .Returns(Task.FromResult(new SaveResponse <IClient> {
                Message = "Successful."
            }));
            mockClientValidator.Setup(x => x.ValidateAsync(It.IsNotNull <IClient>(), CancellationToken.None))
            .Returns(Task.FromResult(new ValidationResult()));
            mockAddressApplicationService.Setup(x => x.SaveAsync(It.IsAny <IAddress>()))
            .Returns(Task.FromResult(new SaveResponse <IAddress> {
                Message = "Successful."
            }));
            mockContactApplicationService.Setup(x => x.SaveAllAsync(It.IsAny <IReadOnlyList <IContact> >()))
            .Returns(Task.FromResult(new SaveResponse <IReadOnlyList <IContact> > {
                Message = "Successful."
            }));

            // Act
            var sut = new ClientApplicationService(
                mockLogManager.Object, mockClientRepository.Object, mockClientValidator.Object, mockAddressApplicationService.Object, mockContactApplicationService.Object);
            var response = await sut.SaveAsync(mockClient.Object);

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

            // Verify the application service is calling dependent methods
            mockClientRepository.Verify(x => x.SaveAsync(It.IsAny <IClient>()));
            mockClientValidator.Verify(x => x.ValidateAsync(It.IsNotNull <IClient>(), CancellationToken.None));
            mockAddressApplicationService.Verify(x => x.SaveAsync(It.IsAny <IAddress>()));
            mockContactApplicationService.Verify(x => x.SaveAllAsync(It.IsAny <IReadOnlyList <IContact> >()));
        }