public void CreateNewOrganizationWithUserThenDelete() { var command = new CreateOrganizationCommand(); command.Name = "Test Org"; command.PrimaryEmailAddress = "*****@*****.**"; command.WebsiteUrl = "www.n-dexed.com"; IHashProvider hashProvider = new PublicPrivateKeyHasher(); string publicKey = ConfigurationManager.AppSettings["PublicKey"]; string privateKey = ConfigurationManager.AppSettings["PrivateKey"]; hashProvider.RegisterKeyPair(publicKey, privateKey); IRepository <UserInfo, UserInfo> userRepository = new MockUserRepository(); ISearchableRepository <UserInfo, UserInfo> searchRepository = new MockUserRepository(); var messager = new MockMailMessager(); IEncryptor encryptor = new RijndaelManagedEncryptor(); IAuthorizationTokenProvider tokenProvider = new HashAuthorizationTokenProvider(hashProvider, encryptor); ICommandHandler <CreateUserCommand> commandHandler = new UserCommandHandler(hashProvider, userRepository, messager, tokenProvider, searchRepository); var handler = new OrganizationCommandHandler(new MockOrganizationRepository(), searchRepository, commandHandler); try { handler.Handle(command); } finally { try { var searchCriteria = new UserInfo() { EmailAddress = command.PrimaryEmailAddress }; var user = searchRepository.Search(searchCriteria).First(); userRepository.Remove(user); } catch { } } }
public void CreateTokenThenValidateToken() { var hasher = new PublicPrivateKeyHasher(); string publicKey = ConfigurationManager.AppSettings["PublicKey"]; string privateKey = ConfigurationManager.AppSettings["PrivateKey"]; hasher.RegisterKeyPair(publicKey, privateKey); var encryptor = new RijndaelManagedEncryptor(); var id = Guid.NewGuid(); var tokenProvider = new HashAuthorizationTokenProvider(hasher, encryptor); var token = tokenProvider.GenerateAuthorizationToken(id); tokenProvider.ValidateAuthorizationToken(token); }
public void CreateUserThenResetPasswordThenDelete() { IHashProvider hashProvider = new PublicPrivateKeyHasher(); string publicKey = ConfigurationManager.AppSettings["PublicKey"]; string privateKey = ConfigurationManager.AppSettings["PrivateKey"]; hashProvider.RegisterKeyPair(publicKey, privateKey); var userRepository = new MockUserRepository(); CreateUserCommand command = new CreateUserCommand(); command.UserName = "******"; command.Password = "******"; command.Id = Guid.NewGuid(); command.EmailAddress = "*****@*****.**"; try { var messager = new MockMailMessager(); IEncryptor encryptor = new RijndaelManagedEncryptor(); IAuthorizationTokenProvider tokenProvider = new HashAuthorizationTokenProvider(hashProvider, encryptor); ICommandHandler <CreateUserCommand> commandHandler = new UserCommandHandler(hashProvider, userRepository, messager, tokenProvider, userRepository); commandHandler.Handle(command); ICommandHandler <ResetPasswordCommand> passwordhandler = (ICommandHandler <ResetPasswordCommand>)commandHandler; ResetPasswordCommand passwordCommand = new ResetPasswordCommand(); passwordCommand.EmailAddress = command.EmailAddress; passwordhandler.Handle(passwordCommand); } finally { UserInfo searchCriteria = new UserInfo(); searchCriteria.EmailAddress = command.EmailAddress; UserInfo userData = userRepository.Search(searchCriteria).FirstOrDefault(); Assert.IsNotNull(userData); userRepository.Remove(userData); } }
public void CreateNewUserByCommandThenFindThenDelete() { IHashProvider hashProvider = new PublicPrivateKeyHasher(); string publicKey = ConfigurationManager.AppSettings["PublicKey"]; string privateKey = ConfigurationManager.AppSettings["PrivateKey"]; hashProvider.RegisterKeyPair(publicKey, privateKey); var userRepository = new MockUserRepository(); CreateUserCommand command = new CreateUserCommand(); command.UserName = "******"; command.Password = "******"; command.Id = Guid.NewGuid(); command.EmailAddress = "*****@*****.**"; var messager = new MockMailMessager(); IEncryptor encryptor = new RijndaelManagedEncryptor(); IAuthorizationTokenProvider tokenProvider = new HashAuthorizationTokenProvider(hashProvider, encryptor); ICommandHandler <CreateUserCommand> commandHandler = new UserCommandHandler(hashProvider, userRepository, messager, tokenProvider, userRepository); commandHandler.Handle(command); UserInfo searchCriteria = new UserInfo(); searchCriteria.EmailAddress = command.EmailAddress; UserInfo userData = userRepository.Search(searchCriteria).FirstOrDefault(); Assert.IsNotNull(userData); string pashWordHash = hashProvider.GenerateHash(command.Password, userData.Id.ToString(), publicKey); Assert.AreEqual(userData.PasswordHash, pashWordHash); Assert.AreEqual(command.EmailAddress, userData.EmailAddress); Assert.AreEqual(command.Id, userData.Id); userRepository.Remove(userData); }