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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 12
0
 public GetUserHandler(BodyFitTrackerContext bodyFitTrackerContext, IMapper mapper, IUserAccessor userAccessor)
 {
     _bodyFitTrackerContext = bodyFitTrackerContext;
     _mapper       = mapper;
     _userAccessor = userAccessor;
 }
Ejemplo n.º 13
0
 public CreateOrEditBodyMeasurementHandler(BodyFitTrackerContext bodyFitTrackerContext, IUserAccessor userAccessor)
 {
     _bodyFitTrackerContext = bodyFitTrackerContext;
     _userAccessor          = userAccessor;
 }
Ejemplo n.º 14
0
 public LoginHandler(BodyFitTrackerContext bodyFitTrackerContext, IPasswordHasher passwordHasher, IJwtGenerator jwtGenerator)
 {
     _bodyFitTrackerContext = bodyFitTrackerContext;
     _passwordHasher        = passwordHasher;
     _jwtGenerator          = jwtGenerator;
 }
Ejemplo n.º 15
0
 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;
 }
Ejemplo n.º 18
0
 public DeleteBodyMeasurementHandler(BodyFitTrackerContext bodyFitTrackerContext, IUserAccessor userAccessor)
 {
     _bodyFitTrackerContext = bodyFitTrackerContext;
     _userAccessor          = userAccessor;
 }
 public GetAllBodyMeasurementsHandler(BodyFitTrackerContext bodyFitTrackerContext, IMapper mapper, IUserAccessor userAccessor)
 {
     _bodyFitTrackerContext = bodyFitTrackerContext;
     _mapper       = mapper;
     _userAccessor = userAccessor;
 }
Ejemplo n.º 20
0
 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;
 }