コード例 #1
0
 private void CheckIfUserHasRightRole(User userToLogin)
 {
     if (!userToLogin.HasThisRole(AdminRole.GetInstance()))
     {
         throw new UnauthorizedAccessException();
     }
 }
コード例 #2
0
        public static void SetReservedProviderInfoForTests(TestContext testContext)
        {
            ADMIN_USER = new User("Brulu", ADMIN_USER_USEREMAIL, "HOLA1234", AdminRole.GetInstance());
            List <IField> emptyFields = new List <IField>();
            TextField     field       = new TextField("NumeroCliente");

            emptyFields.Add(field);
            DESIGNED_PROVIDER = new Provider("Apple", 3, emptyFields);
            ProvidersController providerController = new ProvidersController(ADMIN_USER.Email);

            providerController.PostProvider(DESIGNED_PROVIDER);
            IHttpActionResult actionResultProvider = providerController.GetProviders();
            OkNegotiatedContentResult <IEnumerable <Provider> > contentResult = (OkNegotiatedContentResult <IEnumerable <Provider> >)actionResultProvider;
            IEnumerable <Provider> providers = contentResult.Content;

            foreach (Provider provider in providers)
            {
                if (provider.Name.Equals(DESIGNED_PROVIDER.Name))
                {
                    DESIGNED_PROVIDER.ID = provider.ID;
                }
            }
            providerController.Dispose();
            FIRST_PAYMENT  = CreateFirstPayment();
            SECOND_PAYMENT = CreateNewRandomPayment();
            CONTROLLER     = new PaymentsController(ADMIN_USER_USEREMAIL);
            CONTROLLER.PostPayment(FIRST_PAYMENT);
            CONTROLLER.PostPayment(SECOND_PAYMENT);
            CONTROLLER.Dispose();
        }
コード例 #3
0
        public void ReturnFalseWhenComparedWithANonRoleObject()
        {
            AdminRole adminRole     = AdminRole.GetInstance();
            string    nonRoleObject = "Hello World!";

            Assert.AreNotEqual(adminRole, nonRoleObject);
        }
コード例 #4
0
        public void HaveItsNamesHashCode()
        {
            AdminRole adminRole         = AdminRole.GetInstance();
            int       adminRoleHashCode = adminRole.GetHashCode();

            Assert.AreEqual(adminRoleHashCode, adminRole.Name.GetHashCode());
        }
コード例 #5
0
        public void NotCreateMultipleInstancesOfSameRole()
        {
            AdminRole firstAdminRole  = AdminRole.GetInstance();
            AdminRole secondAdminRole = AdminRole.GetInstance();

            Assert.AreSame(firstAdminRole, secondAdminRole);
        }
コード例 #6
0
        public void HaveAtLeastOnePrivilege()
        {
            AdminRole adminRole = AdminRole.GetInstance();

            int numberOfPrivileges = adminRole.GetPrivilegeCount();

            Assert.IsTrue(numberOfPrivileges > 0);
        }
コード例 #7
0
        public void NotHaveANullName()
        {
            Role   adminRole = AdminRole.GetInstance();
            string email     = "*****@*****.**";
            string name      = null;
            string password  = "******";

            User notValidUser = new User(name, email, password, adminRole);
        }
コード例 #8
0
        public void NotHaveANullEmail()
        {
            Role   adminRole = AdminRole.GetInstance();
            string email     = null;
            string name      = "Nacho";
            string password  = "******";

            User notValidUser = new User(name, email, password, adminRole);
        }
コード例 #9
0
        public void NotHaveAnInvalidEmail()
        {
            Role   adminRole = AdminRole.GetInstance();
            string email     = "invalid";
            string name      = "Diego";
            string password  = "******";

            User notValidUser = new User(name, email, password, adminRole);
        }
コード例 #10
0
        public void NotHaveAnEmptyName()
        {
            Role   adminRole = AdminRole.GetInstance();
            string email     = "*****@*****.**";
            string name      = "";
            string password  = "******";

            User notValidUser = new User(name, email, password, adminRole);
        }
コード例 #11
0
        public void KnowIfItHasACertainPrivilege()
        {
            AdminRole adminRole = AdminRole.GetInstance();

            ICollection <Privilege> adminPrivileges = adminRole.Privileges;
            Privilege firstPrivilege = adminPrivileges.ElementAt(FIRST_POSITION);

            Assert.IsTrue(adminRole.HasPrivilege(firstPrivilege));
        }
コード例 #12
0
        public void NotHaveAWhiteSpaceName()
        {
            Role   adminRole = AdminRole.GetInstance();
            string email     = "*****@*****.**";
            string name      = "          ";
            string password  = "******";

            User notValidUser = new User(name, email, password, adminRole);
        }
コード例 #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));
        }
        public void BeAbleToGetAnObjectByID()
        {
            User user        = new User("Bruno", "*****@*****.**", "Hola111!!!", AdminRole.GetInstance());
            var  mockContext = new Mock <TodoPagosContext>();

            mockContext.Setup(ctx => ctx.Set <User>().Find(It.IsAny <int>())).Returns(user);
            GenericRepository <User> repository = new GenericRepository <User>(mockContext.Object);

            User resultingUser = repository.GetByID(0);

            Assert.AreEqual(user, resultingUser);
        }
コード例 #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));
        }
コード例 #16
0
        public void KnowIfItHasACertainPrivilege()
        {
            Role   adminRole = AdminRole.GetInstance();
            string userEmail = "*****@*****.**";
            string userName  = "******";
            string password  = "******";
            User   newUser   = new User(userName, userEmail, password, adminRole);

            ICollection <Privilege> adminPrivileges = adminRole.Privileges;
            Privilege firstPrivilege = adminPrivileges.ElementAt(FIRST_POSITION);

            Assert.IsTrue(newUser.HasPrivilege(firstPrivilege));
        }
コード例 #17
0
        public static void SetReservedProviderInfoForTests(TestContext testContext)
        {
            ADMIN_USER = new User("Brulu", ADMIN_USER_USEREMAIL, "HOLA1234", AdminRole.GetInstance());

            RESERVED_PROVIDER = new Provider("Claro", 5, new List <IField>());

            MODIFICABLE_PROVIDER = new Provider("Movistar", 10, new List <IField>());

            CONTROLLER = new ProvidersController(ADMIN_USER.Email);
            CONTROLLER.PostProvider(MODIFICABLE_PROVIDER);
            CONTROLLER.PostProvider(RESERVED_PROVIDER);
            CONTROLLER.Dispose();
        }
コード例 #18
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));
        }
        public void BeAbleToDeleteUserFromRepository()
        {
            User adminUser = new User("Bruno", "*****@*****.**", "Hola123!!", AdminRole.GetInstance());

            adminUser.ID = 1;
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            SetMockDeleteRoutine1(mockUnitOfWork, adminUser);
            UserService userService = new UserService(mockUnitOfWork.Object);

            bool deleted = userService.DeleteUser(1, adminUser.Email);

            mockUnitOfWork.Verify(un => un.UserRepository.Delete(It.IsAny <int>()), Times.Exactly(1));
            mockUnitOfWork.Verify(un => un.Save(), Times.Exactly(1));
            Assert.IsTrue(deleted);
        }
        public static void SetAdminInfoForTests(TestContext testContext)
        {
            ADMIN_USER    = new User("Brulu", ADMIN_USER_USEREMAIL, "HOLA1234", AdminRole.GetInstance());
            ADMIN_USER.ID = 1;

            ProvidersController providersController = new ProvidersController(ADMIN_USER_USEREMAIL);

            OkNegotiatedContentResult <Provider> result =
                (OkNegotiatedContentResult <Provider>)providersController.GetProvider(1);

            FIRST_TEST_PROVIDER = result.Content;

            result = (OkNegotiatedContentResult <Provider>)providersController.GetProvider(2);

            SECOND_TEST_PROVIDER = result.Content;
        }
        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 BeAbleToGetAllObjectsWhileApplyingAFilterAndIncludingPropertiesPlusOrderingBy()
        {
            User        user        = new User("Bruno", "*****@*****.**", "Hola111!!!", AdminRole.GetInstance());
            User        anotherUser = new User("Alberto", "*****@*****.**", "Hola111!!!", AdminRole.GetInstance());
            List <User> data        = new List <User>();

            data.Add(user);
            data.Add(anotherUser);
            var mockContext = new Mock <TodoPagosContext>();
            var set         = new Mock <DbSet <User> >().SetupData(data);

            mockContext.Setup(ctx => ctx.Set <User>()).Returns(set.Object);
            GenericRepository <User> repository = new GenericRepository <User>(mockContext.Object);

            IEnumerable <User> resultingUsers = repository.Get((x => x.HasThisRole(AdminRole.GetInstance())),
                                                               (x => x.AsQueryable().OrderBy(u => u.Name)), "Roles");

            Assert.AreEqual(2, resultingUsers.Count());
        }
        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();
        }
        public void BeAbleToReturnAllRolesOfASingleUserInRepository()
        {
            User singleUser         = new User("Diego", "*****@*****.**", "#ElBizagra1995", AdminRole.GetInstance());
            IEnumerable <User> user = new List <User> {
                singleUser
            };
            var mockUnitOfWork         = new Mock <IUnitOfWork>();
            IEnumerable <string> roles = new List <string>()
            {
                "Admin"
            };

            mockUnitOfWork.Setup(un => un.UserRepository.Get(It.IsAny <Expression <Func <User, bool> > >(), null, "")).Returns(user);
            UserService userService = new UserService(mockUnitOfWork.Object);

            IEnumerable <string> returnedRoles = userService.GetRolesOfUser(singleUser.Email, singleUser.Email);

            mockUnitOfWork.VerifyAll();
            CollectionAssert.AreEqual((ICollection)roles, (ICollection)returnedRoles);
        }
        public void BeAbleToReturnSingleUserInRepository()
        {
            User singleUser     = new User("Diego", "*****@*****.**", "#ElBizagra1995", AdminRole.GetInstance());
            var  mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(un => un.UserRepository.GetByID(singleUser.ID)).Returns(singleUser);
            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(singleUser.Email, UserManagementPrivilege.GetInstance()))
            .Returns(true);
            UserService userService = new UserService(mockUnitOfWork.Object);

            User returnedUser = userService.GetSingleUser(singleUser.ID, singleUser.Email);

            mockUnitOfWork.VerifyAll();
            Assert.AreSame(singleUser, returnedUser);
        }
        public void NotDeleteAnythingIfSignedInUserAsksToDeleteHimself()
        {
            var  mockUnitOfWork = new Mock <IUnitOfWork>();
            User user           = new User("Bruno", "*****@*****.**", "Holaaaa12!", AdminRole.GetInstance());

            SetMockDeleteRoutine3(mockUnitOfWork, user);
            UserService userService = new UserService(mockUnitOfWork.Object);

            bool deleted = userService.DeleteUser(user.ID, It.IsAny <string>());

            mockUnitOfWork.Verify(un => un.UserRepository.Delete(It.IsAny <int>()), Times.Never());
            mockUnitOfWork.Verify(un => un.Save(), Times.Never());
            Assert.IsFalse(deleted);
        }
        public void FailWithUnauthorizedAccessExceptionIfUserTriesToPostANewUserWithoutHavingUserManagementPrivilege()
        {
            User userToCreate   = new User("Bruno", "*****@*****.**", "#ElBizagra1995", AdminRole.GetInstance());
            var  mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), UserManagementPrivilege.GetInstance()))
            .Returns(false);
            UserService userService = new UserService(mockUnitOfWork.Object);

            int id = userService.CreateUser(userToCreate, It.IsAny <string>());
        }
        private void SetMockUpdateRoutine6(Mock <IUnitOfWork> mockUnitOfWork)
        {
            User userWithSameEmail = new User("Bruno", "*****@*****.**", "#ElBizagrita1996", AdminRole.GetInstance());

            userWithSameEmail.ID = 5;
            mockUnitOfWork
            .Setup(un => un.UserRepository.GetByID(It.IsAny <int>()))
            .Returns(() => new User());
            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), UserManagementPrivilege.GetInstance()))
            .Returns(true);
            mockUnitOfWork
            .Setup(un => un.UserRepository.Get(
                       It.IsAny <System.Linq.Expressions.Expression <Func <User, bool> > >(), null, ""))
            .Returns(new[] { userWithSameEmail });
        }
        public void NotUpdateUserWithEmailOfAnotherUserInRepository()
        {
            User updatedUserInfo = new User("Diego", "*****@*****.**", "#ElBizagra1995", AdminRole.GetInstance());
            var  mockUnitOfWork  = new Mock <IUnitOfWork>();

            SetMockUpdateRoutine6(mockUnitOfWork);
            UserService userService = new UserService(mockUnitOfWork.Object);

            bool updated = userService.UpdateUser(updatedUserInfo.ID + 1, updatedUserInfo, It.IsAny <string>());

            mockUnitOfWork.Verify(un => un.UserRepository.Update(It.IsAny <User>()), Times.Never());
            mockUnitOfWork.Verify(un => un.Save(), Times.Never());
            Assert.IsFalse(updated);
        }
        public void BeAbleToGetAllUsersFromRepository()
        {
            User singleUser     = new User("Diego", "*****@*****.**", "#ElBizagra1995", AdminRole.GetInstance());
            var  mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(singleUser.Email, UserManagementPrivilege.GetInstance()))
            .Returns(true);
            mockUnitOfWork.Setup(un => un.UserRepository.Get(null, null, ""));
            UserService userService = new UserService(mockUnitOfWork.Object);

            IEnumerable <User> returnedUsers = userService.GetAllUsers(singleUser.Email);

            mockUnitOfWork.VerifyAll();
        }