Beispiel #1
0
        public async Task Post_Password_Should_Change_Password()
        {
            var jwtService = new JwtService()
            {
                Configuration          = GuiApiTestStartup.Configuration,
                Logger                 = new FakeLogger(),
                RepositoriesFactory    = null,
                StringLocalizerFactory = new FakeStringLocalizerFactory()
            };

            var token             = jwtService.GenerateMailToken(_sammyUser.UserName);
            var idUser            = _sammyUser.Id;
            var newPasswordString = "newPassword#1234";

            User myUser = null;

            using (var context = new DaOAuthContext(_dbContextOptions))
            {
                myUser = context.Users.FirstOrDefault(u => u.Id.Equals(idUser));
            }
            Assert.IsNotNull(myUser);

            var actualPassword = myUser.Password;

            var newPasswordDto = new NewPasswordDto()
            {
                NewPassword       = newPasswordString,
                NewPasswordRepeat = newPasswordString,
                Token             = token.Token
            };

            var httpResponseMessage = await _client.PostAsJsonAsync("users/password", newPasswordDto);

            Assert.IsTrue(httpResponseMessage.IsSuccessStatusCode);

            using (var context = new DaOAuthContext(_dbContextOptions))
            {
                myUser = context.Users.FirstOrDefault(u => u.Id.Equals(idUser));
            }
            Assert.IsNotNull(myUser);

            Assert.IsFalse(actualPassword.SequenceEqual <byte>(myUser.Password));

            var encryptonService = new EncryptionService();

            var newPassword = encryptonService.Sha256Hash($"{GuiApiTestStartup.Configuration.PasswordSalt}{newPasswordString}");

            Assert.IsTrue(newPassword.SequenceEqual <byte>(myUser.Password));
        }