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
                {
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
            }
        }
Example #4
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);
        }