Example #1
0
        public void ReturnFalseWhenComparedWithANonRoleObject()
        {
            CashierRole cashierRole   = CashierRole.GetInstance();
            string      nonRoleObject = "Hello World!";

            Assert.AreNotEqual(cashierRole, nonRoleObject);
        }
Example #2
0
        public void NotCreateMultipleInstancesOfSameRole()
        {
            CashierRole firstCashierRole  = CashierRole.GetInstance();
            CashierRole secondCashierRole = CashierRole.GetInstance();

            Assert.AreSame(firstCashierRole, secondCashierRole);
        }
Example #3
0
        public void HaveItsNamesHashCode()
        {
            CashierRole cashierRole         = CashierRole.GetInstance();
            int         cashierRoleHashCode = cashierRole.GetHashCode();

            Assert.AreEqual(cashierRoleHashCode, cashierRole.Name.GetHashCode());
        }
Example #4
0
 public void FailIfPasswordDoesntHaveAtLeastOneNumber()
 {
     Role   cashierRole = CashierRole.GetInstance();
     string userEmail   = "*****@*****.**";
     string userName    = "******";
     string password    = "******";
     User   newUser     = new User(userName, userEmail, password, cashierRole);
 }
Example #5
0
 public void FailIfPasswordIsNull()
 {
     Role   cashierRole = CashierRole.GetInstance();
     string userEmail   = "*****@*****.**";
     string userName    = "******";
     string password    = null;
     User   newUser     = new User(userName, userEmail, password, cashierRole);
 }
Example #6
0
        public void HaveAtLeastOnePrivilege()
        {
            CashierRole cashierRole = CashierRole.GetInstance();

            int numberOfPrivileges = cashierRole.GetPrivilegeCount();

            Assert.IsTrue(numberOfPrivileges > 0);
        }
Example #7
0
 public void FailIfPasswordIsLessThan8CharactersLong()
 {
     Role   cashierRole = CashierRole.GetInstance();
     string userEmail   = "*****@*****.**";
     string userName    = "******";
     string password    = "******";
     User   newUser     = new User(userName, userEmail, password, cashierRole);
 }
Example #8
0
        public void KnowIfItHasACertainPrivilege()
        {
            CashierRole cashierRole = CashierRole.GetInstance();

            Privilege onePrivilege = UserManagementPrivilege.GetInstance();

            Assert.IsFalse(cashierRole.HasPrivilege(onePrivilege));
        }
Example #9
0
        public void BeAbleToTellItHasASalt()
        {
            Role   cashierRole = CashierRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            Assert.IsTrue(newUser.HasSalt());
        }
Example #10
0
        public void HaveAPasswordWithAtLeastOneUppercaseLetterAndOneNumber()
        {
            Role   cashierRole = CashierRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            Assert.IsTrue(Hashing.VerifyHash(password, newUser.Salt, newUser.Password));
        }
Example #11
0
        public void NotRemoveLastRemainingRole()
        {
            Role   cashierRole = CashierRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            newUser.RemoveRole(cashierRole);
        }
        public void BeAbleToPostNewUserIntoRepository()
        {
            User newUser = new User("Gonzalo", "*****@*****.**", "OtraPass123!", CashierRole.GetInstance());

            IHttpActionResult actionResult = CONTROLLER.PostUser(newUser);
            CreatedAtRouteNegotiatedContentResult <User> contentResult = (CreatedAtRouteNegotiatedContentResult <User>)actionResult;

            Assert.AreEqual(contentResult.Content, newUser);

            CONTROLLER.DeleteUser(newUser.ID);
        }
Example #13
0
        public void KnowIfHeDoesntHaveAGivenRole()
        {
            Role   cashierRole = CashierRole.GetInstance();
            Role   adminRole   = AdminRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            Assert.IsFalse(newUser.HasThisRole(adminRole));
        }
Example #14
0
        public void BeAbleToClearItsPassword()
        {
            Role   cashierRole = CashierRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            newUser.ClearPassword();

            Assert.IsNull(newUser.Password);
        }
Example #15
0
        public void BeAbleToAddRoles()
        {
            Role   cashierRole = CashierRole.GetInstance();
            Role   adminRole   = AdminRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            newUser.AddRole(adminRole);

            Assert.IsTrue(newUser.HasThisRole(adminRole) && newUser.HasThisRole(cashierRole));
        }
Example #16
0
        public void BeAbleToCloneItselfAndReturnTheCloneWithoutPassowordOrSalt()
        {
            Role   cashierRole = CashierRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            User clonedUser = newUser.CloneAndReturnNewUserWithoutPasswordAndSalt();

            Assert.IsNull(clonedUser.Password);
            Assert.IsNull(clonedUser.Salt);
            Assert.AreEqual(newUser, clonedUser);
        }
Example #17
0
        public void BeAbleToRemoveRoles()
        {
            Role   cashierRole = CashierRole.GetInstance();
            Role   adminRole   = AdminRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            newUser.AddRole(adminRole);
            newUser.RemoveRole(cashierRole);

            Assert.IsFalse(newUser.HasThisRole(cashierRole));
        }
Example #18
0
        public void NotAddDuplicateRoles()
        {
            Role   firstCashierRole         = CashierRole.GetInstance();
            Role   secondCashierRole        = CashierRole.GetInstance();
            string userEmail                = "*****@*****.**";
            string userName                 = "******";
            string password                 = "******";
            User   newUser                  = new User(userName, userEmail, password, firstCashierRole);
            int    roleAmountBeforeAddition = newUser.GetRoleCount();

            newUser.AddRole(secondCashierRole);

            Assert.AreEqual(roleAmountBeforeAddition, newUser.GetRoleCount());
        }
Example #19
0
        public void BeAbleToReturnAllOfItRolesInAStringEnumerable()
        {
            Role   cashierRole = CashierRole.GetInstance();
            string userEmail   = "*****@*****.**";
            string userName    = "******";
            string password    = "******";
            User   newUser     = new User(userName, userEmail, password, cashierRole);

            IEnumerable <string> expectedRoles = new List <string> {
                CashierRole.GetInstance().Name
            };
            IEnumerable <string> resultingRoles = newUser.GetRoles();

            CollectionAssert.AreEqual((ICollection)expectedRoles, (ICollection)resultingRoles);
        }
        public void BeAbleToReturnAllUsersInRepository()
        {
            List <User> allUsers = new List <User>
            {
                new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance()),
                new User("Ignacio", "*****@*****.**", "#designPatternsLover123", AdminRole.GetInstance())
            };
            var mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.GetAllUsers(It.IsAny <string>())).Returns(allUsers);
            UsersController controller = new UsersController(mockUserService.Object);

            IHttpActionResult actionResult = controller.GetUsers();
            OkNegotiatedContentResult <IEnumerable <User> > contentResult = (OkNegotiatedContentResult <IEnumerable <User> >)actionResult;

            Assert.IsTrue(contentResult.Content.All(x => allUsers.Contains(x)) &&
                          allUsers.All(x => contentResult.Content.Contains(x)));
        }
        public void InsertTestsUserInfoForTest()
        {
            CONTROLLER = new UsersController(ADMIN_USER_USEREMAIL);

            TESTS_USERS = new[]
            {
                new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance()),
                new User("Ignacio", "*****@*****.**", "#designPatternsLover123", AdminRole.GetInstance())
            };

            foreach (User aTestUser in TESTS_USERS)
            {
                CONTROLLER.PostUser(aTestUser);
            }

            ICollection <User> reservedUsers = new[] { ADMIN_USER };

            ALL_USERS_IN_REPOSITORY = reservedUsers.Concat(TESTS_USERS).ToList();
        }
        private List <User> GetAllUsersWithoutPasswordsAndSalts()
        {
            User firstUser  = new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance());
            User secondUser = new User("Ignacio", "*****@*****.**", "#designPatternsLover123", AdminRole.GetInstance());

            firstUser.ClearPassword();
            firstUser.ClearSalt();
            secondUser.ClearPassword();
            secondUser.ClearSalt();
            return(new List <User>
            {
                firstUser,
                secondUser
            });
        }
Example #23
0
        public void BeEqualToAnotherUserIfEmailsAreEqual()
        {
            string equalUserEmail = "*****@*****.**";
            string firstUserName  = "******";
            string firstpassword  = "******";
            string secondUserName = "******";
            string secondPassword = "******";
            User   firstUser      = new User(firstUserName, equalUserEmail, firstpassword, CashierRole.GetInstance());
            User   secondUser     = new User(secondUserName, equalUserEmail, secondPassword, AdminRole.GetInstance());

            Assert.AreEqual(firstUser, secondUser);
        }
Example #24
0
        public void BeEqualToAnotherUserIfIDsAreEqual()
        {
            string firstUserName  = "******";
            string firstEmail     = "*****@*****.**";
            string firstpassword  = "******";
            string secondUserName = "******";
            string secondEmail    = "*****@*****.**";
            string secondPassword = "******";
            User   firstUser      = new User(firstUserName, firstEmail, firstpassword, CashierRole.GetInstance());
            User   secondUser     = new User(secondUserName, secondEmail, secondPassword, AdminRole.GetInstance());
            int    sameId         = 1;

            firstUser.ID  = sameId;
            secondUser.ID = sameId;

            Assert.AreEqual(firstUser, secondUser);
        }
Example #25
0
        public void BeAbleToTellItDoesNotHaveANullPrivilege()
        {
            CashierRole adminRole = CashierRole.GetInstance();

            Assert.IsFalse(adminRole.HasPrivilege(null));
        }
Example #26
0
        public void FailIfPasswordIsIncorrect()
        {
            var                mockUnitOfWork = new Mock <IUnitOfWork>();
            LoginFacade        facade         = new LoginFacade(mockUnitOfWork.Object);
            string             email          = "*****@*****.**";
            string             password       = "******";
            User               cashierUser    = new User("Cajero", "*****@*****.**", "Hola1234!", CashierRole.GetInstance());
            IEnumerable <User> allUsers       = new List <User> {
                cashierUser
            };

            mockUnitOfWork.Setup(u => u.UserRepository.Get(It.IsAny <Expression <Func <User, bool> > >(), null, "")).Returns(new List <User>());

            facade.AdminLogin(email, password);
        }
        public void BeAbleToDeleteAnUser()
        {
            User singleUser      = new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance());
            var  mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.DeleteUser(singleUser.ID, It.IsAny <string>())).Returns(true);
            UsersController controller = new UsersController(mockUserService.Object);

            IHttpActionResult actionResult  = controller.DeleteUser(singleUser.ID);
            StatusCodeResult  contentResult = (StatusCodeResult)actionResult;

            Assert.AreEqual(contentResult.StatusCode, HttpStatusCode.NoContent);
        }
        public void FailWithNotFoundIfToBeDeletedUserDoesntExistInRepository()
        {
            User singleUser      = new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance());
            var  mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.DeleteUser(singleUser.ID, It.IsAny <string>())).Returns(false);
            UsersController controller = new UsersController(mockUserService.Object);

            IHttpActionResult actionResult = controller.DeleteUser(singleUser.ID);

            Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
        }
        public void FailWithBadRequestIfPostedNewUserIsAlreadyInRepository()
        {
            User singleUser      = new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance());
            var  mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.CreateUser(singleUser, It.IsAny <string>())).Throws(new InvalidOperationException());
            UsersController controller = new UsersController(mockUserService.Object);

            IHttpActionResult actionResult = controller.PostUser(singleUser);

            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
        }
        public void FailWithBadRequestIfUpdatedUserIdAndSuppliedIdAreDifferent()
        {
            User singleUser      = new User("Gabriel", "*****@*****.**", "Wololo1234!", CashierRole.GetInstance());
            var  mockUserService = new Mock <IUserService>();

            mockUserService.Setup(x => x.UpdateUser(singleUser.ID + 1, singleUser, It.IsAny <string>())).Returns(false);
            UsersController controller = new UsersController(mockUserService.Object);

            IHttpActionResult actionResult = controller.PutUser(singleUser.ID + 1, singleUser);

            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
        }