示例#1
0
        public async Task CreateAsync_Should_Add_User_CorrectlyAsync(string username, string email, string password,
                                                                     PasswordHashSalt passwordHashSalt, string apiKey)
        {
            var user = default(UserModel);

            _apiKeyGenerator.GenerateNewApiKey().Returns(apiKey);
            _userRepository.IsUsernameExistAsync(username).Returns(false);
            _userRepository.IsEmailExistAsync(email).Returns(false);
            _passwordManager.GeneratePassword(password).Returns(passwordHashSalt);
            _userRepository.When(x => x.AddUserAsync(Arg.Any <UserModel>())).Do(x => user = (UserModel)x[0]);
            await _userServiceInstance.CreateAsync(username, password, email);

            Assert.IsNotNull(user);
            Assert.AreEqual(username, user.Username);
            Assert.AreEqual(email, user.Email);
            Assert.AreEqual(passwordHashSalt.PasswordHash, user.PasswordHash);
            Assert.AreEqual(passwordHashSalt.Salt, user.Salt);
            Assert.That(DateTime.UtcNow, Is.EqualTo(user.Created).Within(1).Seconds);
            Assert.That(DateTime.UtcNow, Is.EqualTo(user.Updated).Within(1).Seconds);
            Assert.AreEqual(apiKey, user.ApiKey);
        }