public string CreateToken() { var whenCreated = BitConverter.GetBytes(SystemTime.Now().ToBinary()); var key = SystemGuid.NewGuid().ToByteArray(); return(Convert.ToBase64String(whenCreated.Concat(key).ToArray())); }
public async Task Register(UserForRegisterDto userForRegister) { if (userForRegister == null) { throw new ArgumentNullException(nameof(userForRegister)); } var userToCreate = _mapper.Map <User>(userForRegister); SetPasswordForUser(userToCreate, userForRegister.Password); userToCreate.ActivationToken = CreateToken <AccountActivationToken>(); userToCreate.PendingUploadPhotosFolderName = SystemGuid.NewGuid().ToString("N"); await UserRepository.AddAsync(userToCreate); await _unitOfWork.CompleteAsync(); }
public void CreateToken_WhenCalled_ProperTokenExpected() { // ARRANGE var provider = new TokenProvider(); var time = DateTime.Now; SystemTime.Set(() => time); var key = SystemGuid.NewGuid(); SystemGuid.Set(() => key); var expected = Convert.ToBase64String(BitConverter.GetBytes(time.ToBinary()) .Concat(key.ToByteArray()).ToArray()); // ACT var actual = provider.CreateToken(); // ASSERT actual.Should().BeEquivalentTo(expected); }
public async Task Register_WhenCalled_ProperUserToAddExpected() { // ARRANGE var userForRegister = new UserForRegisterDto { Username = "******", Email = "*****@*****.**", Password = "******" }; (string password, ComputedPassword computedPassword)password = (userForRegister.Password, ComputedPassword.Create(Encoding.ASCII.GetBytes("password hash"), Encoding.ASCII.GetBytes("password salt"))); SetPasswordProvider(password); var newActivationToken = new AccountActivationToken { Token = "The token" }; User userToAdd = null; _userRepository.When(x => x.AddAsync(Arg.Any <User>())).Do(x => { userToAdd = x.ArgAt <User>(0); }); _tokenProvider.CreateToken().Returns(newActivationToken.Token); _accountActivationTokenRepository.SingleOrDefaultAsync(Arg.Any <Expression <Func <AccountActivationToken, bool> > >()) .Returns((AccountActivationToken)null); var pendingUploadPhotosFolderName = Guid.NewGuid(); SystemGuid.Set(() => pendingUploadPhotosFolderName); var expected = new User { Username = userForRegister.Username, Email = userForRegister.Email, ActivationToken = new AccountActivationToken { Token = newActivationToken.Token }, IsAccountActivated = false, PendingUploadPhotosFolderName = pendingUploadPhotosFolderName.ToString("N"), PasswordHash = password.computedPassword.Hash, PasswordSalt = password.computedPassword.Salt }; // ACT await _sut.Register(userForRegister); // ASSERT userToAdd.Should().BeEquivalentTo(expected); await _unitOfWork.Received().CompleteAsync(); }
public void SetUp() { _userRepository = Substitute.For <IRepository <User> >(); _accountActivationTokenRepository = Substitute.For <IRepository <AccountActivationToken> >(); _resetPasswordTokenRepository = Substitute.For <IRepository <ResetPasswordToken> >(); _unitOfWork = Substitute.For <IUnitOfWork>(); SetUpMapper(); //SetUpFilesStorageProvider(); _tokenProvider = Substitute.For <ITokenProvider>(); _passwordProvider = new MockPasswordProvider(); _configuration = Substitute.For <IConfiguration>(); SetConfigurationSection(default(string), default(int?)); _repositoryFactory = Substitute.For <IRepositoryFactory>(); _repositoryFactory.Create <AccountActivationToken>().Returns(_accountActivationTokenRepository); _repositoryFactory.Create <ResetPasswordToken>().Returns(_resetPasswordTokenRepository); _repositoryFactory.Create <User>().Returns(x => _userRepository); _sut = new AuthService(_repositoryFactory, _unitOfWork, _mapper, _tokenProvider, _passwordProvider, _configuration); SystemGuid.Reset(); }
public void TearDown() { SystemTime.Reset(); SystemGuid.Reset(); }
public override int GetHashCode() => SystemGuid.GetHashCode();