public void Ctor_WHEN_User_Has_Null_Id_THEN_Sets_IsAuthenticated_To_False()
        {
            var user = new User();
            var identity = new JumbleblocksUserIdentity(user);

            identity.IsAuthenticated.ShouldBeFalse();
        }
 private static IJumbleblocksIdentity CreateIdentity(User user)
 {
     if (user == null)
         return  new JumbleblocksAnonymousIdentity();
     else
         return new JumbleblocksUserIdentity(user);
 }
        public JumbleblocksPrincipal(IJumbleblocksIdentity identity, User user = null)
        {
            if (identity == null)
                throw new ArgumentNullException("identity");

            Identity = identity;
            User = user;
        }
Example #4
0
        public void AddRole_Adds_To_Roles_List()
        {
            var role = new Role { Name = "Role" };

            var user = new User();
            user.AddRole(role);

            user.Roles.ShouldContain(role);
        }
        public void Ctor_WHEN_User_Has_An_Id_THEN_Sets_IsAuthenticated_To_True()
        {
            var user = new User();
            user.SetProperty(u => u.Id, 1);

            var identity = new JumbleblocksUserIdentity(user);

            identity.IsAuthenticated.ShouldBeTrue();
        }
Example #6
0
        public void AddRole_GIVEN_User_Has_Role_WHEN_Adding_Same_Role_Again_THEN_Roles_Count_Remains_1()
        {
            var role = new Role { Name = "Role" };

            var user = new User();
            user.AddRole(role);
            user.AddRole(role);

            user.Roles.ShouldContain(role);
            user.Roles.Count().ShouldEqual(1);
        }
        public JumbleblocksUserIdentity(User user, string authenticationType = "Jumbleblocks")
        {
            if (user == null)
                throw new ArgumentNullException("user");

            if (String.IsNullOrWhiteSpace(authenticationType))
                throw new StringArgumentNullOrEmptyException("authenticationType");

            User = user;
            AuthenticationType = authenticationType;
        }
        public void Ctor_WHEN_User_Has_UserName_Joe_THEN_Name_Property_Returns_Joe()
        {
            const string UserName = "******";

            var user = new User { Username = UserName };
            user.SetProperty(u => u.Id, 1);

            var identity = new JumbleblocksUserIdentity(user);

            identity.Name.ShouldEqual(UserName);
        }
Example #9
0
        public void HasOperation_GIVEN_User_Has_1_Role_With_No_Operations_WHEN_operationName_Is_ABC_THEN_Returns_False()
        {
            const string CheckForOperationName = "ABC";

            var role = new Role { Name = "Role" };
            var user = new User();
            user.AddRole(role);

            var result = user.HasOperation(CheckForOperationName);

            result.ShouldBeFalse();
        }
Example #10
0
        public void HasOperation_GIVEN_User_Has_1_Role_With_1_Operation_Named_ABC_WHEN_operationName_Is_ABC_THEN_Returns_True()
        {
            const string OperationName = "ABC";

            var operation = new Operation { Name = OperationName };

            var role = new Role { Name = "Role" };
            role.AddOperation(operation);

            var user = new User();
            user.AddRole(role);

            var result = user.HasOperation(OperationName);

            result.ShouldBeTrue();
        }
        public void CanPerformOperation_GIVEN_Ctor_user_Has_Operation_But_Identity_Is_Not_Authenticated_THEN_Returns_False()
        {
            const string OperationName = "ABC";

            var operation = new Operation { Name = OperationName };
            var role = new Role { Name = "role" };
            role.AddOperation(operation);

            var user = new User();
            user.SetProperty(u => u.Id, 1);
            user.AddRole(role);

            var mockedIdentity = new Mock<IJumbleblocksIdentity>();
            mockedIdentity.Setup(i => i.IsAuthenticated).Returns(false);

            var principal = new JumbleblocksPrincipal(mockedIdentity.Object, user);

            var result = principal.CanPerformOperation(OperationName);

            result.ShouldBeFalse();
        }
        public void RetrievePrincipal_GIVEN_User_Contains_User_With_Username_ABC_Password_That_Is_An_MD5_Hash_Of_DEF_WHEN_Username_Is_ABC_AND_Password_EFG_THEN_Returns_Principal_With_Identity_Of_Type_JumbleblocksAnonymousIdentity()
        {
            const string Username = "******";
            const string Password = "******";

            var hasher = new MD5StringHasher();
            string hashedPassword = hasher.GetHash(Password);

            var user = new User();
            user.SetProperty(u => u.Id, 1);
            user.Username = Username;

            var mockedRepository = new Mock<IUserRepository>();
            mockedRepository.Setup((r) => r.LoadForUsernameAndPassword(It.IsAny<string>(), hashedPassword)).Returns(user);

            var securityService = new SecurityService(mockedRepository.Object, hasher);

            var principal = securityService.RetrievePrincipal(Username, "EFG");

            principal.Identity.ShouldBeInstanceOfType(typeof(JumbleblocksAnonymousIdentity));
        }
Example #13
0
 public void AddRole_WHEN_role_Is_Null_THEN_Throws_ArgumentNullException()
 {
     var user = new User();
     user.AddRole(null);
 }
        public void HasOperation_GIVEN_Has_Operation_ABC_WHEN_operationName_IS_DEF_THEN_Returns_False()
        {
            const string OperationName = "ABC";
            const string CheckOperationName = "DEF";

            var role = new Role { Name = "role" };
            role.AddOperation(new Operation { Name = OperationName });

            var user = new User();
            user.SetProperty(u => u.Id, 1);
            user.AddRole(role);

            var principal = new JumbleblocksPrincipal(new JumbleblocksUserIdentity(user), user);

            var result = principal.HasOperation(CheckOperationName);

            result.ShouldBeFalse();
        }
        public void IsInRole_GIVEN_Has_Role_ABC_WHEN_roleName_IS_DEF_THEN_Returns_False()
        {
            const string RoleName = "ABC";
            const string CheckRoleName = "DEF";

            var role = new Role { Name = RoleName };
            var user = new User();
            user.SetProperty(u => u.Id, 1);
            user.AddRole(role);

            var principal = new JumbleblocksPrincipal(new JumbleblocksUserIdentity(user), user);

            var result = principal.IsInRole(CheckRoleName);

            result.ShouldBeFalse();
        }
        public void CanPerformRole_GIVEN_Ctor_user_Has_Role_And_Identity_Is_Authenticated_THEN_Returns_True()
        {
            const string RoleName = "ABC";

            var role = new Role { Name = RoleName };
            var user = new User();
            user.SetProperty(u => u.Id, 1);
            user.AddRole(role);

            var mockedIdentity = new Mock<IJumbleblocksIdentity>();
            mockedIdentity.Setup(i => i.IsAuthenticated).Returns(true);

            var principal = new JumbleblocksPrincipal(mockedIdentity.Object, user);

            var result = principal.CanPerformRole(RoleName);

            result.ShouldBeTrue();
        }
Example #17
0
        public void HasRole_GIVEN_User_Has_Role_With_Name_ABC_WHEN_roleName_Is_ABC_THEN_Returns_True()
        {
            const string RoleName = "ABC";

            var role = new Role { Name = RoleName };
            var user = new User();
            user.AddRole(role);

            var result = user.HasRole(RoleName);

            result.ShouldBeTrue();
        }
Example #18
0
        public void HasRole_GIVEN_User_Has_No_Roles_WHEN_roleName_Is_ABC_THEN_Returns_False()
        {
            var user = new User();
            var result = user.HasRole("ABC");

            result.ShouldBeFalse();
        }
Example #19
0
        public void HasOperation_GIVEN_User_Has_No_Roles_WHEN_operationName_Is_ABC_THEN_Returns_False()
        {
            const string CheckForOperationName = "ABC";

            var user = new User();

            var result = user.HasOperation(CheckForOperationName);

            result.ShouldBeFalse();
        }
Example #20
0
        public void HasRole_GIVEN_User_Has_Role_With_Name_ABC_WHEN_roleName_Is_DEF_THEN_Returns_False()
        {
            const string RoleName = "ABC";
            const string CheckForRoleName = "DEF";

            var role = new Role { Name = RoleName };
            var user = new User();
            user.AddRole(role);

            var result = user.HasRole(CheckForRoleName);

            result.ShouldBeFalse();
        }