public void RegisterUser_Should_Call_AddProfile_On_ProfileService() { var newMembership = new InverGrove.Domain.Models.Membership {MembershipId = 4, UserId = 1}; var newUser = this.GetTestRegister(); this.userRoleRepository.Setup(u => u.Get(It.IsAny<Expression<Func<UserRole, bool>>>(), It.IsAny<Func<IQueryable<UserRole>, IOrderedQueryable<UserRole>>>(), It.IsAny<bool>(), It.IsAny<string>())).Returns(new List<UserRole>()); this.membershipService.Setup( m => m.CreateMembershipUser(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), false, MembershipPasswordFormat.Hashed)).Returns(newMembership); this.userRoleRepository.Setup(u => u.AddUserToRole(newMembership.UserId, newUser.RoleId)); this.registrationService.RegisterUser(newUser); this.profileService.Verify(p => p.AddProfile(It.IsAny<int>(), It.IsAny<int>(), true, true)); }
/// <summary> /// Creates the specified user id. /// </summary> /// <param name="password">The password.</param> /// <param name="isApproved">if set to <c>true</c> [is approved].</param> /// <param name="passwordQuestion">The password question.</param> /// <param name="passwordAnswer">The password answer.</param> /// <param name="passwordFormat">The password format.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">password</exception> public IMembership Create(string password, bool isApproved, string passwordQuestion, string passwordAnswer, MembershipPasswordFormat passwordFormat) { if (string.IsNullOrEmpty(password)) { throw new ParameterNullException("password"); } if (string.IsNullOrEmpty(passwordQuestion)) { throw new ParameterNullException("passwordQuestion"); } if (string.IsNullOrEmpty(passwordAnswer)) { throw new ParameterNullException("passwordAnswer"); } var inverGrovePasswordFormat = passwordFormat.ToInverGrovePasswordFormat(); var membership = new Membership { PasswordSalt = password.GetRandomSalt(), PasswordFormatId = (int)inverGrovePasswordFormat, IsApproved = isApproved, PasswordQuestion = passwordQuestion }; var strippedSecurityAnswer = passwordAnswer.ToSecurityAnswer(); var hashedSecurityAnswer = strippedSecurityAnswer.FormatPasscode(inverGrovePasswordFormat, membership.PasswordSalt); membership.Password = password.FormatPasscode(inverGrovePasswordFormat, membership.PasswordSalt); membership.PasswordAnswer = (inverGrovePasswordFormat == InverGrovePasswordFormat.Hashed) ? hashedSecurityAnswer : strippedSecurityAnswer; membership.FailedPasswordAttemptWindowStart = DateTime.MinValue.IsSqlSafeDate(); membership.FailedPasswordAnswerAttemptWindowStart = DateTime.MinValue.IsSqlSafeDate(); return membership; }