public void WillSaveTheNewUserAsConfirmedWhenConfigured() { var userService = new TestableUserService(); userService.MockConfig .Setup(x => x.ConfirmEmailAddresses) .Returns(false); userService.MockCrypto .Setup(x => x.GenerateSaltedHash(It.IsAny <string>(), It.IsAny <string>())) .Returns("theHashedPassword"); userService.Create( "theUsername", "thePassword", "theEmailAddress"); userService.MockUserRepository .Verify(x => x.InsertOnCommit( It.Is <User>( u => u.Username == "theUsername" && u.HashedPassword == "theHashedPassword" && u.Confirmed))); userService.MockUserRepository .Verify(x => x.CommitChanges()); }
public void SetsAnApiKey() { var userService = new TestableUserService(); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.NotEqual(Guid.Empty, user.ApiKey); }
public void WillHashThePassword() { var userService = new TestableUserService(); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.Equal("PBKDF2", user.PasswordHashAlgorithm); Assert.True(VerifyPasswordHash(user, "thePassword")); }
public void SetsAConfirmationToken() { var userService = new TestableUserService(); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.NotEmpty(user.EmailConfirmationToken); Assert.False(user.Confirmed); }
public void SetsCreatedDate() { var userService = new TestableUserService(); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.NotNull(user.CreatedUtc); // Allow for up to 5 secs of time to have elapsed between Create call and now. Should be plenty Assert.True((DateTime.UtcNow - user.CreatedUtc) < TimeSpan.FromSeconds(5)); }
public void SetsTheUserToConfirmedWhenEmailConfirmationIsNotEnabled() { var userService = new TestableUserService(); userService.MockConfig .Setup(x => x.ConfirmEmailAddresses) .Returns(false); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.Equal(true, user.Confirmed); }
public void WillHashThePassword() { var userService = new TestableUserService(); userService.MockCrypto .Setup(x => x.GenerateSaltedHash("thePassword", It.IsAny <string>())) .Returns("theHashedPassword"); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.Equal("theHashedPassword", user.HashedPassword); }
public void SetsAConfirmationToken() { var userService = new TestableUserService(); userService.MockCrypto .Setup(c => c.GenerateToken()) .Returns("secret!"); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.Equal("secret!", user.EmailConfirmationToken); Assert.False(user.Confirmed); }
public void WillSaveTheNewUser() { var userService = new TestableUserService(); userService.Create( "theUsername", "thePassword", "theEmailAddress"); userService.MockUserRepository .Verify(x => x.InsertOnCommit( It.Is <User>( u => u.Username == "theUsername" && u.UnconfirmedEmailAddress == "theEmailAddress"))); userService.MockUserRepository .Verify(x => x.CommitChanges()); }
public void WillHashThePassword() { var userService = new TestableUserService(); userService.MockCrypto .Setup(x => x.GenerateSaltedHash("thePassword", It.IsAny<string>())) .Returns("theHashedPassword"); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.Equal("theHashedPassword", user.HashedPassword); }
public void WillSaveTheNewUser() { var userService = new TestableUserService(); userService.MockCrypto .Setup(x => x.GenerateSaltedHash(It.IsAny<string>(), It.IsAny<string>())) .Returns("theHashedPassword"); userService.Create( "theUsername", "thePassword", "theEmailAddress"); userService.MockUserRepository .Verify(x => x.InsertOnCommit( It.Is<User>( u => u.Username == "theUsername" && u.HashedPassword == "theHashedPassword" && u.UnconfirmedEmailAddress == "theEmailAddress"))); userService.MockUserRepository .Verify(x => x.CommitChanges()); }
public void SetsAnApiKey() { var userService = new TestableUserService(); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); userService.MockUserRepository .Verify(x => x.InsertOnCommit(user)); Assert.NotEqual(Guid.Empty, user.ApiKey); var apiKeyCred = user.Credentials.FirstOrDefault(c => c.Type == CredentialTypes.ApiKeyV1); Assert.NotNull(apiKeyCred); Assert.Equal(user.ApiKey.ToString().ToLowerInvariant(), apiKeyCred.Value); }
public void WillSaveTheNewUserAsConfirmedWhenConfigured() { var userService = new TestableUserService(); userService.MockConfig .Setup(x => x.ConfirmEmailAddresses) .Returns(false); userService.Create( "theUsername", "thePassword", "theEmailAddress"); userService.MockUserRepository .Verify(x => x.InsertOnCommit( It.Is<User>( u => u.Username == "theUsername" && u.Confirmed))); userService.MockUserRepository .Verify(x => x.CommitChanges()); }
public void WillSaveTheNewUser() { var userService = new TestableUserService(); userService.Create( "theUsername", "thePassword", "theEmailAddress"); userService.MockUserRepository .Verify(x => x.InsertOnCommit( It.Is<User>( u => u.Username == "theUsername" && u.UnconfirmedEmailAddress == "theEmailAddress"))); userService.MockUserRepository .Verify(x => x.CommitChanges()); }
public void WillSaveThePasswordInTheCredentialsTable() { var userService = new TestableUserService(); var user = userService.Create( "theUsername", "thePassword", "theEmailAddress"); Assert.NotNull(user); var passwordCred = user.Credentials.FirstOrDefault(c => c.Type == CredentialTypes.Password.Pbkdf2); Assert.NotNull(passwordCred); Assert.Equal(CredentialTypes.Password.Pbkdf2, passwordCred.Type); Assert.True(VerifyPasswordHash(passwordCred.Value, Constants.PBKDF2HashAlgorithmId, "thePassword")); userService.MockUserRepository .Verify(x => x.InsertOnCommit(user)); userService.MockUserRepository .Verify(x => x.CommitChanges()); }