Пример #1
0
        public async Task DeleteUser_InvalidUserId_ThrowException(string userId)
        {
            // Arrange
            var userRepositoryMock      = new Mock <IUserRepository>();
            var userManagerMock         = new Mock <IUserManager>();
            var currentUserResolverMock = new Mock <ICurrentUserResolver>();

            var deleteUserCommandValidator = new DeleteUserCommandValidator(
                userManagerMock.Object,
                userRepositoryMock.Object,
                currentUserResolverMock.Object);

            var validationService = new ValidationService(deleteUserCommandValidator);

            var userService = InstantiateUserService(
                new Tuple <Type, object>(typeof(IValidationService), validationService)
                );
            var command = new DeleteUserCommand()
            {
                UserId = userId
            };

            // Act
            // Assert
            await Assert.ThrowsAsync <ValidationException>(
                () => userService.DeleteUser(command)
                );
        }
Пример #2
0
        public async Task DeleteUser_IsOnlyAdminOrManager_ThrowException(int adminCount, int managerCount)
        {
            // Arrange
            var userId = Guid.NewGuid().ToString();

            var userRepositoryMock = new Mock <IUserRepository>();

            userRepositoryMock.Setup(r => r.GetUserById(It.IsAny <string>()))
            .ReturnsAsync(new User()
            {
                Id = userId
            });

            var userManagerMock = new Mock <IUserManager>();

            userManagerMock
            .Setup(um => um.GetRoles(userId))
            .ReturnsAsync(new[] { Constants.ROLE_AMIN, Constants.ROLE_USER_MANGER });

            userManagerMock
            .Setup(um => um.CountUsersInRoles())
            .ReturnsAsync(new Dictionary <string, int>()
            {
                [Constants.ROLE_AMIN]        = adminCount,
                [Constants.ROLE_USER_MANGER] = managerCount,
                [Constants.ROLE_USER]        = 10,
            });

            var currentUserResolverMock = new Mock <ICurrentUserResolver>();

            currentUserResolverMock.Setup(r => r.ResolveAsync())
            .ReturnsAsync(new User()
            {
                Id = Guid.NewGuid().ToString()
            });

            var deleteUserCommandValidator = new DeleteUserCommandValidator(
                userManagerMock.Object,
                userRepositoryMock.Object,
                currentUserResolverMock.Object
                );

            var validationService = new ValidationService(deleteUserCommandValidator);

            var userService = InstantiateUserService(
                new Tuple <Type, object>(typeof(IValidationService), validationService)
                );
            var command = new DeleteUserCommand()
            {
                UserId = userId
            };

            // Act
            // Assert
            await Assert.ThrowsAsync <ValidationException>(
                () => userService.DeleteUser(command)
                );
        }
        public async Task Validate_GivenValidRequest_ShouldReturnTrue()
        {
            // Arrange
            var sut   = new DeleteUserCommandValidator();
            var query = new DeleteUserCommand(Guid.NewGuid());

            // Act
            var res = await sut.ValidateAsync(query);

            // Assert
            res.IsValid.Should().BeTrue();
        }
        public async Task Validate_GivenInvalidRequest_ShouldReturnFalseWithErrors()
        {
            // Arrange
            var expectedNumberOfValidationErrors = 1;
            var sut   = new DeleteUserCommandValidator();
            var query = new DeleteUserCommand(Guid.Empty);

            // Act
            var res = await sut.ValidateAsync(query);

            // Assert
            res.IsValid.Should().BeFalse();
            res.Errors.Count.Equals(expectedNumberOfValidationErrors);
        }
Пример #5
0
        public async Task DeleteUser_WithoutForceButHasTimeEntries_ThrowException()
        {
            // Arrange
            var userId = Guid.NewGuid().ToString();

            var userRepositoryMock = new Mock <IUserRepository>();

            userRepositoryMock.Setup(r => r.GetUserById(It.IsAny <string>()))
            .ReturnsAsync(new User()
            {
                Id          = userId,
                TimeEntries = new List <TimeEntry>()
                {
                    new TimeEntry()
                }
            });

            var userManagerMock         = new Mock <IUserManager>();
            var currentUserResolverMock = new Mock <ICurrentUserResolver>();

            currentUserResolverMock.Setup(r => r.ResolveAsync())
            .ReturnsAsync(new User()
            {
                Id = Guid.NewGuid().ToString()
            });

            var deleteUserCommandValidator = new DeleteUserCommandValidator(
                userManagerMock.Object,
                userRepositoryMock.Object,
                currentUserResolverMock.Object
                );

            var validationService = new ValidationService(deleteUserCommandValidator);

            var userService = InstantiateUserService(
                new Tuple <Type, object>(typeof(IValidationService), validationService)
                );
            var command = new DeleteUserCommand()
            {
                UserId = userId
            };

            // Act
            // Assert
            await Assert.ThrowsAsync <ValidationException>(
                () => userService.DeleteUser(command)
                );
        }