Beispiel #1
0
        public async Task TryCreateLogin_ShouldCheckPasswordMinLength_Always(int minLength, string password, bool expected)
        {
            // Arrange
            var configBuilder = new AuthConfigBuilder();

            configBuilder.Password.MinLength = minLength;

            var loginRepo = LoginRepoMock.Mock(false, false);
            var service   = new AuthenticationService(loginRepo.Object, configBuilder.Get());

            // Act
            var result = await service.TryCreateLogin("", password);

            // Assert
            Assert.Equal(expected, result.Password.MeetsMinLength);
        }
Beispiel #2
0
        public async Task TryCreateLogin_ShouldCheckUsernameMinLengthRequirements_Always(int minLength, string username, bool expected)
        {
            // Arrange
            var configBuilder = new AuthConfigBuilder();

            configBuilder.Username.MinLength = minLength;

            var loginRepo = LoginRepoMock.Mock(false, false);
            var service   = new AuthenticationService(loginRepo.Object, configBuilder.Get());

            // Act
            var result = await service.TryCreateLogin(username, "");

            // Assert
            Assert.Equal(expected, result.Username.MeetsMinLength);
        }
Beispiel #3
0
        public async Task TryCreateLogin_ShouldCheckPasswordHasUppercase_WhenConfiguredToCheckForUppercase(string password, bool expected)
        {
            // Arrange
            var configBuilder = new AuthConfigBuilder();

            configBuilder.Password.RequireUppercase = true;

            var loginRepo = LoginRepoMock.Mock(false, false);
            var service   = new AuthenticationService(loginRepo.Object, configBuilder.Get());

            // Act
            var result = await service.TryCreateLogin("", password);

            // Assert
            Assert.Equal(expected, result.Password.HasUppercase);
        }
Beispiel #4
0
        public async Task TryCreateLogin_ShouldReturnNullForPasswordHasSymbol_WhenConfiguredToNotCheckForSymbol(string password)
        {
            // Arrange
            var configBuilder = new AuthConfigBuilder();

            configBuilder.Password.RequireSymbol = false;

            var loginRepo = LoginRepoMock.Mock(false, false);
            var service   = new AuthenticationService(loginRepo.Object, configBuilder.Get());

            // Act
            var result = await service.TryCreateLogin("", password);

            // Assert
            Assert.Null(result.Password.HasSymbol);
        }
Beispiel #5
0
        public async Task AuthenticateUser_ShouldReturnNull_WhenCheckLoginReturnsFalse()
        {
            // Arrange
            var loginRepo  = LoginRepoMock.Mock(false, null);
            var authConfig = new Mock <IAuthConfig>();
            var service    = new AuthenticationService(loginRepo.Object, authConfig.Object);
            var request    = new UserLoginRequest()
            {
                Username = "******",
                Password = "******"
            };

            // Act
            var result = await service.AuthenticateUser(request);

            // Assert
            Assert.Null(result);
        }