public void SetUp()
        {
            //Map interfaces for further modifications

            DiMvc.Register();

            Ioc.RegisterType<IUserRepository, UserRepository>();
            Ioc.RegisterType<ICryptoProvider, KeccakCryptoProvider>();
            Ioc.RegisterType<ISaltProvider, RandomSaltProvider>();

            var cryptoProvider = Ioc.Resolve<ICryptoProvider>();
            var saltProvider = Ioc.Resolve<ISaltProvider>();

            _membershipProvider = new CalendarMembershipProvider(cryptoProvider, saltProvider);

            _userPassword = "******";
            _userSalt = saltProvider.GetSalt(SALT_LENGTH);

            var keccak = cryptoProvider.GetHashWithSalt(_userPassword, _userSalt);

            _repoUnit = Ioc.Resolve<RepoUnit>();

            _user = new User
            {
                Email = "*****@*****.**",
                FirstName = "Sherlock",
                LastName = "Holmes",
                PasswordHash = keccak,
                PasswordSalt = _userSalt,
                Role = Roles.Simple
            };

            _repoUnit.User.Save(_user);
        }
Beispiel #2
0
        public void CreateTeam_Should_Add_User_To_The_Team()
        {
            //arrange
            var user = new User { Live = LiveStatuses.Active, FirstName = "Alex", LastName = "Al", Id = 1 };
            var teamVm = new TeamEditVm { Name = ".NET", Users = new List<UserVm> { new UserVm(user) } };
            _unit.User.Save(user);

            //act
            _teamService.CreateTeam(teamVm);

            //assert
            _unit.Team.Load(t => t.Name == ".NET").First().Users.Count.Should().Be(1);
        }
Beispiel #3
0
        public UserEditVm(User user)
        {
            UserId = user.Id;
            FirstName = user.FirstName;
            LastName = user.LastName;
            Email = user.Email;
            Role = user.Role;
            BirthDate = user.BirthDate;
            Contacts = new List<Contact>(user.Contacts);

            Live = user.Live;
            ApproveState = user.ApproveState;
        }
Beispiel #4
0
        public void GenerateClients(RepoUnit repoUnit, int count = 1000)
        {
            for (var i = 1; i < count; i++)
            {
                var user = new User
                               {
                                   Email = string.Format("test{0}@gmail.com", i),
                                   FirstName = "Test" + i,
                                   LastName = "Test",

                                   Role = Roles.Simple,
                                   Live = LiveStatuses.Active,
                                   ApproveState = ApproveStates.Approved
                               };

                repoUnit.User.Save(user);
            }
        }
        public void Should_delete_user_from_database_When_specified_user_with_existing_email()
        {
            // arrange

            string email = "*****@*****.**";

            var deletedUser = new User { Email = email, Contacts = new Collection<Contact>() };

            _repoUnit.User.Save(deletedUser);

            // act

            new UsersController(_userService).Delete(new UserEditVm(deletedUser));

            // assert

            _repoUnit.User.Get(user => user.Email == email).Live.Should().Be(LiveStatuses.Deleted);
        }
        public void Should_add_new_user_to_database()
        {
            // arrange

            string email = "*****@*****.**";

            var user = new User
                {
                    Email = email,
                    Contacts = new Collection<Contact>()
                };

            // act

            _userService.SaveUser(new UserEditVm(user));

            // assert

            _repoUnit.User.Load().ToList().Last().Email.ShouldBeEquivalentTo(email);
        }
Beispiel #7
0
        public void Can_Paginate_Users()
        {
            //arrange

            //var mockConfig = new Mock<IConfig>();
            //mockConfig.Setup(instance => instance.PageSize).Returns(pageSize);
            //Ioc.RegisterInstance<IConfig>(mockConfig.Object);

            _config.PageSize = 3;

            var expectedPage1Content = new User[] {_users[0], _users[1], _users[2]};
            var expectedPage2Content = new User[] { _users[3] };

            //act
            var usersPage1 = _userService.RetreiveList(new UserFilterVm {Page = 1}).Users;
            var usersPage2 = _userService.RetreiveList(new UserFilterVm {Page = 2}).Users;

            //assert
            usersPage1.ShouldAllBeEquivalentTo(expectedPage1Content);
            usersPage2.ShouldAllBeEquivalentTo(expectedPage2Content);
        }
Beispiel #8
0
        public HomeService(UsersRules rules, RepoUnit unit, EventSavingService calendarEventService)
        {
            _savingService = calendarEventService;
            _rules = rules;
            _unit = unit;
            var users = unit.User.Load();
            if (!users.Any())
            {
                var defaultUser = new User
                {
                    BirthDate = null,
                    Email = "Admin",
                    FirstName = "Admin",
                    LastName = "Admin",
                    Role = Roles.Admin,
                    PasswordHash = "Admin",
                    PasswordSalt = "",

                    Live = LiveStatuses.Active,
                    ApproveState = ApproveStates.Approved
                };
                unit.User.Save(defaultUser);
            }
        }
Beispiel #9
0
        private static void sendMsgToUser(User user)
        {
            var sender = Ioc.Resolve<EmailSender>();
            var body = string.Format("Hi, {0}!\nYour account's status is {1} and {2} now.",
                user.FullName,
                user.Live.GetDescription(),
                user.ApproveState.GetDescription());

            sender.Send("Status has been changed", body, user.Email);
        }
        public override MembershipUser CreateUser(string username, string password, string email,
                                                  string passwordQuestion, string passwordAnswer, bool isApproved,
                                                  object providerUserKey, out MembershipCreateStatus status)
        {
            if(!EmailSender.IsValidEmailAddress(email))
            {
                status = MembershipCreateStatus.InvalidEmail;
                return null;
            }
            if (GetUser(email, true) != null)
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return GetUser(email, false);
            }
            var salt = _salt.GetSalt(SALT_LENGTH);
            var user = new User
            {
                FirstName = email.Remove(email.IndexOf('@')),
                LastName = "",
                Email = email,
                PasswordHash = _crypto.GetHashWithSalt(password, salt),
                PasswordSalt = salt,
                Role = Roles.Simple,
                BirthDate = null,

                ApproveState = ApproveStates.NotApproved,
                Live = LiveStatuses.Active
            };

            using (var unit = new RepoUnit())
            {
                unit.User.Save(user);
                status = MembershipCreateStatus.Success;
                return GetUser(email, true);
            }
        }
        public void Should_modify_user_details_When_pass_existing_user_to_the_edit_view()
        {
            // arrange

            var modifiedUser = new User { Email = "*****@*****.**", Contacts = new Collection<Contact>() };
            _repoUnit.User.Save(modifiedUser);

            modifiedUser.Id = _repoUnit.User.Get(user => user.Email == modifiedUser.Email).Id;
            modifiedUser.Email = "*****@*****.**";

            // act

            new UsersController(_userService).Edit(new UserEditVm(modifiedUser), false);

            // assert

            _repoUnit.User.Get(modifiedUser.Id).Email.ShouldBeEquivalentTo(modifiedUser.Email);
        }
        public void Should_throw_WarningException_When_add_user_with_existing_email()
        {
            // arrange

            string email = "*****@*****.**";

            _repoUnit.User.Save(new User
            {
                Email = email,
                Live = LiveStatuses.Active,
                ApproveState = ApproveStates.Approved
            });

            var userToAdd = new User
            {
                Email = email,
                Contacts = new Collection<Contact>()
            };

            // act

            Action action = () => _userService.SaveUser(new UserEditVm(userToAdd));

            // assert

            action.ShouldThrow<WarningException>().WithMessage(string.Format("User with email {0} already exists", email));
        }
Beispiel #13
0
 public UserVm(User user)
 {
     UserId = user.Id;
     FullName = string.Format("{0} {1}", user.LastName, user.FirstName);
 }