コード例 #1
0
ファイル: LoginTests.cs プロジェクト: vnhrmth/IndexCards
        public void When_signin_method_is_called_with_exception_throwing_method_then_return_bad_request()
        {
            // Arrange
            LoginUserUpsertion loginUserUpsertion = new LoginUserUpsertion();

            loginUserUpsertion.MailId   = "*****@*****.**";
            loginUserUpsertion.Password = "******";

            _userManagerMock.Setup(x =>
                                   x.FindByEmailAsync(It.IsAny <string>())).
            Returns(Task.FromResult(new IdentityUser()));

            _signInManagerMock.Setup(x =>
                                     x.CheckPasswordSignInAsync(It.IsAny <IdentityUser>(),
                                                                It.IsAny <string>(),
                                                                It.IsAny <bool>())).
            Returns(Task.FromResult(SignInResult.Success));

            _signInManagerMock.Setup(x =>
                                     x.PasswordSignInAsync(It.IsAny <IdentityUser>(),
                                                           It.IsAny <string>(),
                                                           It.IsAny <bool>(),
                                                           It.IsAny <bool>())).
            Throws(new Exception());

            // Act
            var          response     = _loginController.Signin(loginUserUpsertion);
            ObjectResult objectResult = response.Result as ObjectResult;

            // Assert
            Assert.AreEqual(objectResult.StatusCode, (int)HttpStatusCode.BadRequest);
        }
コード例 #2
0
ファイル: LoginTests.cs プロジェクト: vnhrmth/IndexCards
        public void When_signin_method_with_any_other_exception_then_return_internal_server_error()
        {
            // Arrange
            LoginUserUpsertion loginUserUpsertion = new LoginUserUpsertion();

            loginUserUpsertion.MailId   = "*****@*****.**";
            loginUserUpsertion.Password = "******";

            _userManagerMock.Setup(x =>
                                   x.FindByEmailAsync(It.IsAny <string>())).
            Throws(new Exception());

            // Act
            var          response     = _loginController.Signin(loginUserUpsertion);
            ObjectResult objectResult = response.Result as ObjectResult;

            // Assert
            Assert.AreEqual(objectResult.StatusCode, (int)HttpStatusCode.InternalServerError);
        }
コード例 #3
0
ファイル: LoginTests.cs プロジェクト: vnhrmth/IndexCards
        public void When_signin_method_is_called_with_find_by_email_method_returning_null_then_return_bad_request_error()
        {
            // Arrange
            LoginUserUpsertion loginUserUpsertion = new LoginUserUpsertion();

            loginUserUpsertion.MailId   = "*****@*****.**";
            loginUserUpsertion.Password = "******";

            _userManagerMock.Setup(x =>
                                   x.FindByEmailAsync(It.IsAny <string>())).
            Returns(Task.FromResult((IdentityUser)null));

            // Act
            var          response     = _loginController.Signin(loginUserUpsertion);
            ObjectResult objectResult = response.Result as ObjectResult;

            // Assert
            Assert.AreEqual(objectResult.StatusCode, (int)HttpStatusCode.BadRequest);
        }
コード例 #4
0
ファイル: LoginTests.cs プロジェクト: vnhrmth/IndexCards
        public void When_signin_method_is_called_with_wrong_format_then_return_bad_request_status_code(string emailId, string password)
        {
            // Arrange
            LoginUserUpsertion loginUserUpsertion = new LoginUserUpsertion();

            loginUserUpsertion.MailId   = emailId;
            loginUserUpsertion.Password = password;

            _userManagerMock.Setup(x =>
                                   x.FindByEmailAsync(loginUserUpsertion.MailId)).
            Returns(Task.FromResult(new IdentityUser()));

            // Act
            var          response     = _loginController.Signin(loginUserUpsertion);
            ObjectResult objectResult = response.Result as ObjectResult;

            //// Assert
            Assert.AreEqual(objectResult.StatusCode, (int)HttpStatusCode.BadRequest);
        }
コード例 #5
0
ファイル: LoginController.cs プロジェクト: vnhrmth/IndexCards
        public async Task <object> Signin([FromBody] LoginUserUpsertion user)
        {
            try
            {
                var identityUser = await _userManager.FindByEmailAsync(user.MailId);

                if (null == identityUser)
                {
                    throw new LoginException("No such user found");
                }
                var checkPasswordResult = await _signInManager.CheckPasswordSignInAsync(identityUser, user.Password, true);

                if (null != checkPasswordResult && checkPasswordResult.Succeeded)
                {
                    var result = await _signInManager.PasswordSignInAsync(user.MailId, user.Password, true, false);

                    if (null != result && result.Succeeded)
                    {
                        User usr = new User();
                        usr.MailId = user.MailId;
                        usr.Name   = usr.Name;

                        if (null != Authenticate(usr))
                        {
                            return(Ok(usr));
                        }
                    }
                }
                throw new LoginException("Incorrect Username / Password");
            }
            catch (LoginException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }