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); }