public void ChangingPasswordShouldSucceedIfCurrentPasswordIsCorrect() { ChangePasswordRequest changePasswordRequest = new ChangePasswordRequest { CurrentPassword = _userPassword, NewPassword = "******", ConfirmedNewPassword = "******" }; ChangePasswordResult changePasswordResult = _changePasswordHandler.Handle(changePasswordRequest); BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(false); Assert.IsTrue(changePasswordResult.Succeeded); Assert.AreEqual("abc", bodyFitTrackerContext.AppUsers.Where(x => x.AppUserId == 1).First().HashedPassword); }
public void SetUp() { BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(true); AppUser appUser = new AppUser("*****@*****.**", "", "", 60, GenderType.Male, MeasurementSystem.Imperial); bodyFitTrackerContext.Add(appUser); bodyFitTrackerContext.SaveChanges(); var jwtGeneratorMock = new Mock <IJwtGenerator>(); var passwordHasherMock = new Mock <IPasswordHasher>(); jwtGeneratorMock.Setup(x => x.CreateToken(It.IsAny <AppUser>())).Returns(""); passwordHasherMock.Setup(x => x.GeneratePassword(It.IsAny <string>())).Returns(("", "")); _createUserHandler = new CreateUserHandler(bodyFitTrackerContext, passwordHasherMock.Object, jwtGeneratorMock.Object); }
public void UsersPasswordShouldBeSuccessfullyUpdatedAssumingTokenIsFoundAndNotExipred() // see token validation tests to see what happens if token is invalid { ResetPasswordStepTwoRequest request = new ResetPasswordStepTwoRequest { NewPassword = "******", ConfirmedNewPassword = "******", ResetPasswordToken = _passwordResetToken }; ResetPasswordStepTwoResult result = _resetPasswordStepTwoHandler.Handle(request); BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(false); AppUser appUser = bodyFitTrackerContext.AppUsers.Where(x => x.Email == _appUserEmail).First(); Assert.IsTrue(result.Succeeded); Assert.AreEqual(request.NewPassword, appUser.HashedPassword); }
/// <summary> /// Returns an in memory database. If <paramref name="deleteExistingDatabase"/> is /// true, then the returned context will have an empty database. If <paramref name="deleteExistingDatabase"/> is false, then /// the returned context will use an existing database if there is one. /// If there is no existing database, then a new database will be created. /// </summary> public static BodyFitTrackerContext GetInMemoryDatabase(bool deleteExistingDatabase = true) { var options = new DbContextOptionsBuilder <BodyFitTrackerContext>() .UseInMemoryDatabase(databaseName: "BodyFitContext") .Options; BodyFitTrackerContext bodyFitTrackerContext = new BodyFitTrackerContext(options); if (deleteExistingDatabase) { bodyFitTrackerContext.Database.EnsureDeleted(); bodyFitTrackerContext.Database.EnsureCreated(); } return(bodyFitTrackerContext); }
public void SetUp() { BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(true); AppUser appUser = new AppUser("*****@*****.**", _userPassword, "", 60, GenderType.Male, MeasurementSystem.Imperial); bodyFitTrackerContext.Add(appUser); bodyFitTrackerContext.SaveChanges(); var passwordHasherMock = new Mock <IPasswordHasher>(); var userAccessorMock = new Mock <IUserAccessor>(); userAccessorMock.Setup(x => x.GetCurrentUserId()).Returns(appUser.AppUserId); passwordHasherMock.Setup(x => x.ValidatePlainTextPassword(_userPassword, It.IsAny <string>(), It.IsAny <string>())).Returns(true); passwordHasherMock.Setup(x => x.GeneratePassword(It.IsAny <string>())).Returns((string password) => (password, "")); _changePasswordHandler = new ChangePasswordHandler(bodyFitTrackerContext, passwordHasherMock.Object, userAccessorMock.Object); }
public void UserProfileShouldBeUpdatedBasedOffRequest() { ChangeProfileSettingsRequest request = new ChangeProfileSettingsRequest { Email = "*****@*****.**", Height = 70, UnitsOfMeasure = MeasurementSystem.Imperial }; _changeProfileSettingsHandler.Handle(request); BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(false); AppUser appUser = bodyFitTrackerContext.AppUsers.Where(x => x.AppUserId == _userId).First(); Assert.AreEqual("*****@*****.**", appUser.Email); Assert.AreEqual(70, appUser.Height); }
public void SetUp() { BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(true); AppUser dom = new AppUser("*****@*****.**", "", "", 10, GenderType.Male, MeasurementSystem.Imperial); // will have an id of 1 AppUser bob = new AppUser("*****@*****.**", "", "", 10, GenderType.Male, MeasurementSystem.Imperial); // will have an id of 2 bodyFitTrackerContext.BodyMeasurements.Add(new BodyMeasurement(dom, 11, 12, null, 60, 100, DateTime.Today, MeasurementSystem.Imperial)); // will have id of 1 bodyFitTrackerContext.BodyMeasurements.Add(new BodyMeasurement(bob, 11, 20, null, 60, 100, DateTime.Today, MeasurementSystem.Imperial)); // will have an id of 2 bodyFitTrackerContext.SaveChanges(); var userAccessorMock = new Mock <IUserAccessor>(); userAccessorMock.Setup(x => x.GetCurrentUserId()).Returns(dom.AppUserId); _deleteBodyMeasurementHandler = new DeleteBodyMeasurementHandler(bodyFitTrackerContext, userAccessorMock.Object); }
public void SetUp() { BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(true); AppUser appUser = new AppUser("*****@*****.**", "", "", 60, GenderType.Male, MeasurementSystem.Imperial); bodyFitTrackerContext.Add(appUser); bodyFitTrackerContext.SaveChanges(); _userEmail = appUser.Email; var emailSender = new Mock <IEmailSender>(); var passwordResetTokenGenerator = new Mock <IPasswordResetTokenGenerator>(); emailSender.Setup(x => x.SendEmail(It.IsAny <EmailMessage>())); passwordResetTokenGenerator.Setup(x => x.CreateResetToken()).Returns(("reset-token")); _resetPasswordStepOneHandler = new ResetPasswordStepOneHandler(bodyFitTrackerContext, emailSender.Object, passwordResetTokenGenerator.Object); }
public void UserCreationShouldSucceedIfEmailAddressIsAvailable() { string emailAddress = "*****@*****.**"; CreateUserRequest createUserRequest = new CreateUserRequest { Email = emailAddress, Password = "******", ConfirmedPassword = "******", Gender = GenderType.Female, UnitsOfMeasure = MeasurementSystem.Imperial }; CreateUserResult createUserResult = _createUserHandler.Handle(createUserRequest); BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(false); Assert.IsNotNull(bodyFitTrackerContext.AppUsers.Where(x => x.Email == emailAddress).First()); Assert.IsTrue(createUserResult.Succeeded); }
public void SetUp() { BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(true); AppUser appUser = new AppUser("*****@*****.**", "", "", 60, GenderType.Male, MeasurementSystem.Imperial); _appUserEmail = appUser.Email; bodyFitTrackerContext.Add(appUser); bodyFitTrackerContext.SaveChanges(); // add the password reset record after the app user has been added, so the appUserId is generated bodyFitTrackerContext.PasswordResets.Add(new PasswordReset(_passwordResetToken, appUser.AppUserId, DateTime.Now.AddHours(10))); bodyFitTrackerContext.SaveChanges(); var passwordHasherMock = new Mock <IPasswordHasher>(); passwordHasherMock.Setup(x => x.GeneratePassword(It.IsAny <string>())).Returns((string password) => (password, "")); _resetPasswordStepTwoHandler = new ResetPasswordStepTwoHandler(bodyFitTrackerContext, passwordHasherMock.Object); }
public void SetUp() { BodyFitTrackerContext bodyFitTrackerContext = DatabaseConnectionFactory.GetInMemoryDatabase(true); AppUser appUser = new AppUser("*****@*****.**", "", "", 60, GenderType.Male, MeasurementSystem.Imperial); bodyFitTrackerContext.AppUsers.Add(appUser); bodyFitTrackerContext.BodyMeasurements.Add(new BodyMeasurement(appUser, 11, 12, null, 60, 120, DateTime.Today, MeasurementSystem.Imperial)); bodyFitTrackerContext.SaveChanges(); var userAccessorMock = new Mock <IUserAccessor>(); userAccessorMock.Setup(x => x.GetCurrentUserId()).Returns(appUser.AppUserId); MapperConfiguration mapperConfiguration = new MapperConfiguration(opts => { opts.AddProfile(new BodyMeasurementsMappingProfile()); }); IMapper mapper = mapperConfiguration.CreateMapper(); _getBodyMeasurementHandler = new GetBodyMeasurementHandler(bodyFitTrackerContext, mapper, userAccessorMock.Object); }
public GetUserHandler(BodyFitTrackerContext bodyFitTrackerContext, IMapper mapper, IUserAccessor userAccessor) { _bodyFitTrackerContext = bodyFitTrackerContext; _mapper = mapper; _userAccessor = userAccessor; }
public CreateOrEditBodyMeasurementHandler(BodyFitTrackerContext bodyFitTrackerContext, IUserAccessor userAccessor) { _bodyFitTrackerContext = bodyFitTrackerContext; _userAccessor = userAccessor; }
public LoginHandler(BodyFitTrackerContext bodyFitTrackerContext, IPasswordHasher passwordHasher, IJwtGenerator jwtGenerator) { _bodyFitTrackerContext = bodyFitTrackerContext; _passwordHasher = passwordHasher; _jwtGenerator = jwtGenerator; }
public ValidateResetPasswordTokenHandler(BodyFitTrackerContext bodyFitTrackerContext) { _bodyFitTrackerContext = bodyFitTrackerContext; }
public ChangePasswordHandler(BodyFitTrackerContext bodyFitTrackerContext, IPasswordHasher passwordHasher, IUserAccessor userAccessor) { this._bodyFitTrackerContext = bodyFitTrackerContext; this._passwordHasher = passwordHasher; this._userAccessor = userAccessor; }
public ResetPasswordStepTwoHandler(BodyFitTrackerContext bodyFitTrackerContext, IPasswordHasher passwordHasher) { _bodyFitTrackerContext = bodyFitTrackerContext; _passwordHasher = passwordHasher; }
public DeleteBodyMeasurementHandler(BodyFitTrackerContext bodyFitTrackerContext, IUserAccessor userAccessor) { _bodyFitTrackerContext = bodyFitTrackerContext; _userAccessor = userAccessor; }
public GetAllBodyMeasurementsHandler(BodyFitTrackerContext bodyFitTrackerContext, IMapper mapper, IUserAccessor userAccessor) { _bodyFitTrackerContext = bodyFitTrackerContext; _mapper = mapper; _userAccessor = userAccessor; }
public ChangeProfileSettingsHandler(BodyFitTrackerContext bodyFitTrackerContext, IUserAccessor userAccessor) { this._bodyFitTrackerContext = bodyFitTrackerContext; this._userAccessor = userAccessor; }
public ResetPasswordStepOneHandler(BodyFitTrackerContext bodyFitTrackerContext, IEmailSender emailSender, IPasswordResetTokenGenerator passwordResetTokenGenerator) { this._bodyFitTrackerContext = bodyFitTrackerContext; this._emailSender = emailSender; this._passwordResetTokenGenerator = passwordResetTokenGenerator; }