public static async Task SignInAsync_SuccessfulSignInWithNullContext_RaisesLoginSuccessEvent()
        {
            int eventCount = 0;
            UserLoginSuccessEvent raisedEvent = null;

            void EventCallback(UserLoginSuccessEvent evt)
            {
                eventCount++;
                raisedEvent = evt;
            }

            const string userId   = "UserId";
            const string username = "******";

            using var loginService = new LoginServiceBuilder()
                                     .WithEventServiceCallback <UserLoginSuccessEvent>(EventCallback)
                                     .WithSignInResult(IdentitySignInResult.Success)
                                     .WithFindUserResult(ApplicationUserBuilder
                                                         .Create()
                                                         .WithUserId(userId)
                                                         .WithUsername(username)
                                                         .Build())
                                     .Build();

            await loginService.SignInAsync("user", "pass", new Uri("~/", UriKind.Relative));

            eventCount.Should().Be(1);
            Assert.NotNull(raisedEvent);
            raisedEvent.ClientId.Should().BeNull();
            raisedEvent.DisplayName.Should().Be(username);
            raisedEvent.Message.Should().BeNull();
            raisedEvent.SubjectId.Should().Be(userId);
            raisedEvent.Username.Should().Be(username);
        }
        public static async Task SignInAsync_FailedSignInWithNullContext_RaisesLoginFailureEvent()
        {
            const string username = "******";

            int eventCount = 0;
            UserLoginFailureEvent raisedEvent = null;

            void EventCallback(UserLoginFailureEvent evt)
            {
                eventCount++;
                raisedEvent = evt;
            }

            using var loginService = new LoginServiceBuilder()
                                     .WithFindUserResult(ApplicationUserBuilder.Create().WithUsername(username).Build())
                                     .WithEventServiceCallback <UserLoginFailureEvent>(EventCallback)
                                     .WithSignInResult(IdentitySignInResult.Failed)
                                     .Build();

            await loginService.SignInAsync(username, "pass", null);

            eventCount.Should().Be(1);
            Assert.NotNull(raisedEvent);
            raisedEvent.ClientId.Should().BeNull();
            raisedEvent.Message.Should().Be(LoginService.ValidateUserMessage);
            raisedEvent.Username.Should().Be(username);
        }
        public static async Task SignInAsync_MissingCredentials_ReturnsExpectedResult(string username, string password)
        {
            using var loginService = new LoginServiceBuilder().Build();

            var result = await loginService.SignInAsync(username, password, null);

            Assert.NotNull(result);
            result.IsSuccess.Should().BeFalse();
        }
Exemplo n.º 4
0
        public async Task AddLoginSuccessfully()
        {
            var loginRepository = new LoginRepositoryBuilder().Build();
            var loginService    = new LoginServiceBuilder(loginRepository).Build();

            var result = await loginService.Add(_loginDto);

            Assert.True(result.Success);
        }
Exemplo n.º 5
0
        public async Task LoginThatNotExists()
        {
            var loginRepository = new LoginRepositoryBuilder().Build();
            var loginService    = new LoginServiceBuilder(loginRepository).Build();

            var result = await loginService.Authenticate(_loginDto);

            Assert.False(result.Success);
        }
Exemplo n.º 6
0
        public async Task DontAddLoginWithDuplicateEmail()
        {
            var loginRepository = new LoginRepositoryBuilder().Build();
            var loginService    = new LoginServiceBuilder(loginRepository).Build();
            await loginService.Add(_loginDto);

            // Try to insert with same login
            var result = await loginService.Add(_loginDto);

            Assert.False(result.Success);
        }
Exemplo n.º 7
0
        public async Task LoginWithInvalidPassword()
        {
            var loginRepository = new LoginRepositoryBuilder().Build();
            var loginService    = new LoginServiceBuilder(loginRepository).Build();
            await loginService.Add(_loginDto);

            var loginWithWrongPassword = new LoginDto(_loginDto.Email, "invalidPassword");
            var result = await loginService.Authenticate(loginWithWrongPassword);

            Assert.False(result.Success);
        }
        public static async Task SignInAsync_FailedSignIn_NullContext_ReturnsExpectedResult()
        {
            using var loginService = new LoginServiceBuilder()
                                     .WithSignInResult(IdentitySignInResult.Failed)
                                     .Build();

            var result = await loginService.SignInAsync("user", "pass", null);

            Assert.NotNull(result);
            result.IsSuccess.Should().BeFalse();
            result.Value.Should().BeNull();
        }
Exemplo n.º 9
0
        public async Task AuthenticateLoginSuccessfully()
        {
            var loginRepository = new LoginRepositoryBuilder().Build();
            var loginService    = new LoginServiceBuilder(loginRepository).Build();
            await loginService.Add(_loginDto);

            var result = await loginService.Authenticate(_loginDto);

            System.Console.WriteLine("Success: {0}", result.Success);

            Assert.True(result.Success);
        }
        public static async Task SignInAsync_SuccessfulSignIn_WithContext_ReturnsExpectedResult()
        {
            using var loginService = new LoginServiceBuilder()
                                     .WithAuthorizationContextResult(new AuthorizationRequest())
                                     .WithSignInResult(IdentitySignInResult.Success)
                                     .Build();

            var result = await loginService.SignInAsync("user", "pass", null);

            Assert.NotNull(result);
            result.IsSuccess.Should().BeTrue();
            result.Value.IsTrustedReturnUrl.Should().BeTrue();
            result.Value.LoginHint.Should().BeNull();
        }
        public static async Task SignInAsync_FailedSignIn_WithContext_ReturnsExpectedResult()
        {
            const string loginHint = "Hint";

            var authorizationRequest = new AuthorizationRequest {
                LoginHint = loginHint
            };

            using var loginService = new LoginServiceBuilder()
                                     .WithAuthorizationContextResult(authorizationRequest)
                                     .WithSignInResult(IdentitySignInResult.Failed)
                                     .Build();

            var result = await loginService.SignInAsync("user", "pass", null);

            Assert.NotNull(result);
            result.IsSuccess.Should().BeFalse();
            result.Value.Should().BeNull();
        }