Exemplo n.º 1
0
        public IActionResult ChangeEmail(UserToChangeEmail user)
        {
            try
            {
                _accountService.ChangeEmail(user);

                return(Ok(new
                {
                    Success = true,
                    Message = "Successfully changed email."
                }));
            }
            catch (ArgumentNullException argumentNullException)
            {
                return(BadRequest(new
                {
                    Success = false,
                    Error = argumentNullException.Message
                }));
            }
            catch (Exception exception)
            {
                return(new ObjectResult(new
                {
                    Success = false,
                    Error = exception.Message
                })
                {
                    StatusCode = StatusCodes.Status500InternalServerError
                });
            }
        }
        public void ChangeEmail_NullValue_Test()
        {
            var accountServiceMock = new Mock <IAccountService>();

            var user = new UserToChangeEmail();

            accountServiceMock.Setup(x => x.ChangeEmail(user))
            .Throws <ArgumentNullException>();
            var controller = new AccountController(accountServiceMock.Object);

            var actualResult = controller.ChangeEmail(user);

            var badRequestResult = (BadRequestObjectResult)actualResult;
            var asJson           = JsonConvert.SerializeObject(badRequestResult.Value);
            var deserialized     = JsonConvert.DeserializeObject <Dictionary <string, object> >(asJson);

            Assert.IsTrue((bool)deserialized["Success"] == false);

            accountServiceMock.VerifyAll();
        }
        public void ChangeEmail_Successfully_Test()
        {
            var accountServiceMock = new Mock <IAccountService>();

            var user = new UserToChangeEmail();

            accountServiceMock.Setup(x => x.ChangeEmail(user));

            var controller   = new AccountController(accountServiceMock.Object);
            var actualResult = controller.ChangeEmail(user);

            var okResult = (OkObjectResult)actualResult;

            var asJson       = JsonConvert.SerializeObject(okResult.Value);
            var deserialized = JsonConvert.DeserializeObject <Dictionary <string, object> >(asJson);

            Assert.IsTrue((bool)deserialized["Success"]);

            accountServiceMock.VerifyAll();
        }
        /// <summary>
        /// Changes email using as parameter <see cref="UserToChangeEmail"/>.
        /// </summary>
        /// <param name="user">User for log in</param>
        /// <exception cref="ArgumentNullException"></exception>
        /// <exception cref="InvalidOperationException"></exception>
        public void ChangeEmail(UserToChangeEmail user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user), "User can not be null.");
            }

            var query = @"UPDATE [User]
                            SET [Email] = @email
                            WHERE [Username] = @name";

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                DynamicParameters parameters = new DynamicParameters();

                parameters.Add("@name", user.Username);
                parameters.Add("@email", user.NewEmail);

                connection.QueryFirstOrDefault <UserToChangeEmail>(query, parameters);
            }
        }