Esempio n. 1
0
        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);
        }