Exemplo n.º 1
0
        public void ChangingFromUsingPermissionsToUsingRolesShouldRemoveGroupFromCustomRolesAndDeleteCustomRoles()
        {
            var mock = new GroupServiceMock();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel {
                Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers
            }).AsQueryable());
            var group = MembershipTestData.DivingGroup;

            group.UsePermissions = false;
            mock.GroupManagerMock.Setup(m => m.Query()).Returns(MembershipTestData.Groups.AsQueryable());
            mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, MembershipTestData.DivingGroup.Name, It.IsAny <bool>())).Returns(group);
            mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
            mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.AsQueryable());
            mock.RoleManagerMock.Setup(m => m.PermissionQuery()).Returns(MembershipTestData.Permissions.AsQueryable());
            var  id   = Guid.NewGuid();
            Role role = new Role(id, MembershipTestData.DivingGroupId, Resources.DefaultValues.PermissionSetName);

            role.Groups = new List <GroupInRole> {
                new GroupInRole(MembershipTestData.DivingGroupId, id)
            };
            mock.RoleManagerMock.Setup(r => r.Create(Resources.DefaultValues.PermissionSetName, It.IsAny <string>(), It.IsAny <IList <Permission> >())).Returns(role);
            var model = MembershipTestData.DivingGroup.Map <GroupViewModel>();

            model.UsePermissions = true;
            model.Permissions    = new List <AssignPermissionModel>();
            var result = mock.GroupService.Save(model);

            mock.RoleManagerMock.Verify(m => m.RemoveGroupFromRoles(MembershipTestData.DivingGroupId, It.IsAny <string[]>()), Times.Once());
            mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
        }
Exemplo n.º 2
0
        public void GetShouldRetrieveFilledGroupModelForUsingPermissions()
        {
            var mock = new GroupServiceMock();

            mock.DataSourceMock.Setup(m => m.Query <Group>()).Returns(MembershipTestData.Groups.AsQueryable());
            mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.DivingGroup);
            mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.Where(r => r.Permissions.Any(p => p.ApplicationId == MembershipTestData.AppId)).AsQueryable());
            var groupRoles  = MembershipTestData.GroupsInRoles;
            var groupInRole = new GroupInRole(MembershipTestData.DivingGroupId, MembershipTestData.DivingPermissionSetRoleId);

            groupInRole.Role = MembershipTestData.DivingPermissionSetRole;
            groupRoles.Add(groupInRole);
            var groupRoleQuery = groupRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => g.Role).Map <AssignRoleModel>().AsQueryable();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(groupRoleQuery);
            mock.RoleManagerMock.Setup(p => p.PermissionQuery()).Returns(MembershipTestData.Permissions.Where(p => p.ApplicationId == MembershipTestData.AppId).AsQueryable());
            mock.RoleManagerMock.Setup(p => p.GetPermissionSetForGroup(MembershipTestData.DivingGroupId)).Returns(groupInRole);
            _userContextMock.Setup(m => m.GroupId).Returns(MembershipTestData.DivingGroupId);
            var result = mock.GroupService.Get(MembershipTestData.DivingGroupId);

            _userContextMock.Setup(m => m.GroupId).Returns(MembershipTestData.MainGroupId);
            Assert.IsNotNull(result);
            Assert.AreEqual(5, result.Roles.Count);
            Assert.AreEqual(2, result.Roles.Where(r => r.Selected).Count());
            Assert.AreEqual(4, result.Permissions.Count);
            Assert.AreEqual(1, result.Permissions.Where(r => r.Selected).Count());
            Assert.AreEqual(MembershipTestData.CreateUserPermission.Name, result.Permissions.First(r => r.Selected).Name);
        }
Exemplo n.º 3
0
        public void ChangingFromUsingRolesToUsingPermissionsShouldRemoveGroupFromRoles()
        {
            var mock = new GroupServiceMock();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel {
                Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers
            }).AsQueryable());
            var group = MembershipTestData.DivingGroup;

            group.UsePermissions = true;
            mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, MembershipTestData.DivingGroup.Name, It.IsAny <bool>())).Returns(group);
            mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
            mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.AsQueryable());
            var model = MembershipTestData.DivingGroup.Map <GroupViewModel>();

            model.Roles = new List <AssignRoleModel> {
                new AssignRoleModel {
                    Id = MembershipTestData.GroupAdminRoleId, Name = MembershipTestData.GroupAdminRoleName, Selected = true
                }, new AssignRoleModel {
                    Id = MembershipTestData.EditorRoleId, Name = MembershipTestData.EditorRoleName, Selected = true
                }
            };
            model.UsePermissions = false;
            var result = mock.GroupService.Save(model);

            mock.RoleManagerMock.Verify(m => m.RemoveGroupFromRoles(MembershipTestData.DivingGroupId, It.IsAny <string[]>()), Times.Once());
            mock.RoleManagerMock.Verify(m => m.Delete(MembershipTestData.DivingPermissionSetRoleId), Times.Once());
            mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
        }
Exemplo n.º 4
0
        public void SaveAnExistingGroupWhenUsingRolesShouldSaveGroupAndRemoveUnselectedMainRoles()
        {
            var mock  = new GroupServiceMock();
            var group = MembershipTestData.DivingGroup;

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel {
                Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers
            }).AsQueryable());
            mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
            mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, It.IsAny <string>(), It.IsAny <bool>())).Returns(MembershipTestData.DivingGroup);
            mock.UserManagerMock.Setup(m => m.Query()).Returns(MembershipTestData.Users.Where(u => u.Roles.Any(r => r.GroupRoleGroupId == MembershipTestData.DivingGroupId)).ToList().AsQueryable());
            var model = MembershipTestData.DivingGroup.Map <GroupViewModel>();

            model.Roles = new List <AssignRoleModel> {
                new AssignRoleModel {
                    Id = MembershipTestData.GroupAdminRoleId, Name = MembershipTestData.GroupAdminRoleName, Selected = true
                }, new AssignRoleModel {
                    Id = MembershipTestData.EditorRoleId, Name = MembershipTestData.EditorRoleName, Selected = false
                }
            };
            var result = mock.GroupService.Save(model);

            mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
            mock.RoleManagerMock.Verify(m => m.RemoveGroupFromRoles(MembershipTestData.DivingGroupId, It.IsAny <string[]>()), Times.Once());
        }
Exemplo n.º 5
0
        public void SaveANewGroupWhenUsingRolesShouldSaveGroupAndAddAllSelectedMainRoles()
        {
            var mock = new GroupServiceMock();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel {
                Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers
            }).AsQueryable());
            mock.GroupManagerMock.Setup(g => g.Create(MembershipTestData.DivingGroup.Name, It.IsAny <bool>())).Returns(MembershipTestData.DivingGroup);
            var groupRoleQuery = MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => g).Map <AssignRoleModel>().AsQueryable();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(new List <AssignRoleModel>().AsQueryable());
            var userRoleQuery = MembershipTestData.UsersInRoles.Where(g => g.UserId == MembershipTestData.DivingManagerId).Select(g => g.GroupRole).Map <AssignRoleModel>().AsQueryable();

            mock.RoleManagerMock.Setup(r => r.QueryForUser(MembershipTestData.DivingManagerId)).Returns(userRoleQuery);
            var model = MembershipTestData.DivingGroup.Map <GroupViewModel>();

            model.Id    = Guid.Empty;
            model.Roles = new List <AssignRoleModel> {
                new AssignRoleModel {
                    Id = MembershipTestData.GroupAdminRoleId, Name = MembershipTestData.GroupAdminRoleName, Selected = true
                }, new AssignRoleModel {
                    Id = MembershipTestData.EditorRoleId, Name = MembershipTestData.EditorRoleName, Selected = true
                }
            };
            var result = mock.GroupService.Save(model);

            mock.RoleManagerMock.Verify(m => m.AddGroupToRole(MembershipTestData.DivingGroupId, It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <DateTime?>(), It.IsAny <int?>()), Times.Exactly(2));
            mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
        }
Exemplo n.º 6
0
        public void DeleteGroupWithUsersShouldDeleteGroupAndClearPermissionCache()
        {
            var mock   = new GroupServiceMock();
            var groups = MembershipTestData.Groups;
            var group  = groups.First(g => g.Id == MembershipTestData.DivingGroupId);

            mock.GroupManagerMock.Setup(g => g.Query()).Returns(groups.AsQueryable());
            mock.GroupService.Delete(MembershipTestData.DivingGroupId);
            mock.GroupManagerMock.Verify(m => m.Delete(MembershipTestData.DivingGroupId), Times.Once());
            mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
        }
 public void GetNewShouldRetrieveFilledGroupModel()
 {
     var mock = new GroupServiceMock();
     mock.DataSourceMock.Setup(m => m.Query<Group>()).Returns(MembershipTestData.Groups.AsQueryable());
     mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.MainGroupId)).Returns(MembershipTestData.MainGroup);
     mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.Where(r => r.Permissions.Any(p => p.ApplicationId == MembershipTestData.AppId)).AsQueryable());
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.MainGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.MainGroupId).Select(g => g.Role).Map<AssignRoleModel>().AsQueryable());
     mock.RoleManagerMock.Setup(p => p.PermissionQuery()).Returns(MembershipTestData.Permissions.Where(p => p.ApplicationId == MembershipTestData.AppId).AsQueryable());
     var result = mock.GroupService.Get(Guid.Empty);
     Assert.IsNotNull(result);
     Assert.AreEqual(3, result.Roles.Count);
     Assert.IsFalse(result.Roles.Any(r => r.Name == Resources.DefaultValues.PermissionSetName));
     Assert.AreEqual(0, result.Roles.Where(r => r.Selected).Count());
     Assert.IsFalse(result.Roles.Any(r => r.Name.ToLower() == MembershipTestData.AdminRoleName.ToLower()));
     Assert.IsTrue(new int[] { 0, 1, 2 }.Except(result.Roles.Select(r => r.Index)).Count() == 0);
     Assert.AreEqual(4, result.Permissions.Count);
 }
Exemplo n.º 8
0
        public void GetNewShouldRetrieveFilledGroupModel()
        {
            var mock = new GroupServiceMock();

            mock.DataSourceMock.Setup(m => m.Query <Group>()).Returns(MembershipTestData.Groups.AsQueryable());
            mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.MainGroupId)).Returns(MembershipTestData.MainGroup);
            mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.Where(r => r.Permissions.Any(p => p.ApplicationId == MembershipTestData.AppId)).AsQueryable());
            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.MainGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.MainGroupId).Select(g => g.Role).Map <AssignRoleModel>().AsQueryable());
            mock.RoleManagerMock.Setup(p => p.PermissionQuery()).Returns(MembershipTestData.Permissions.Where(p => p.ApplicationId == MembershipTestData.AppId).AsQueryable());
            var result = mock.GroupService.Get(Guid.Empty);

            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.Roles.Count);
            Assert.IsFalse(result.Roles.Any(r => r.Name == Resources.DefaultValues.PermissionSetName));
            Assert.AreEqual(0, result.Roles.Where(r => r.Selected).Count());
            Assert.IsFalse(result.Roles.Any(r => r.Name.ToLower() == MembershipTestData.AdminRoleName.ToLower()));
            Assert.IsTrue(new int[] { 0, 1, 2 }.Except(result.Roles.Select(r => r.Index)).Count() == 0);
            Assert.AreEqual(4, result.Permissions.Count);
        }
Exemplo n.º 9
0
        public void SaveAnExistingGroupWhenUsingPermissionsShouldUpdateGroupUpdatePermissionSetRoleForGroupAndAllGroupRoleDatesAndAddAllSelectedPermissions()
        {
            var mock = new GroupServiceMock();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel {
                Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers
            }).AsQueryable());
            var group = MembershipTestData.DivingGroup;

            group.UsePermissions = true;
            mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, MembershipTestData.DivingGroup.Name, It.IsAny <bool>())).Returns(group);
            mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
            mock.RoleManagerMock.Setup(m => m.PermissionQuery()).Returns(MembershipTestData.Permissions.AsQueryable());
            var permissionSet = MembershipTestData.DivingGroupPermissionSet;

            permissionSet.StartDate = DateTime.Now.AddDays(-10);
            permissionSet.EndDate   = DateTime.Now.AddDays(20);
            mock.RoleManagerMock.Setup(m => m.GetPermissionSetForGroup(MembershipTestData.DivingGroupId)).Returns(permissionSet);
            var startDate = DateTime.Now;
            var endDate   = DateTime.Now.AddDays(10);
            var model     = MembershipTestData.DivingGroup.Map <GroupViewModel>();

            model.PermissionSetStartDate = startDate;
            model.PermissionSetEndDate   = endDate;
            model.UsePermissions         = true;
            model.Roles       = new List <AssignRoleModel>();
            model.Permissions = new List <AssignPermissionModel> {
                new AssignPermissionModel {
                    Name = MembershipTestData.CreateUserPermission.Name, Id = MembershipTestData.CreateUserPermissionId
                }, new AssignPermissionModel {
                    Name = MembershipTestData.ErrorLogPermission.Name, Id = MembershipTestData.ErrorLogPermissionId
                }
            };
            var result = mock.GroupService.Save(model);

            Assert.AreEqual(startDate, permissionSet.StartDate);
            Assert.AreEqual(endDate, permissionSet.EndDate);
            Assert.AreEqual(2, permissionSet.Role.Permissions.Count);
        }
Exemplo n.º 10
0
        public void SaveANewGroupWhenUsingPermissionsShouldSaveGroupCreatePermissionSetRoleForGroupAndAddAllSelectedPermissions()
        {
            var mock = new GroupServiceMock();

            mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel {
                Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers
            }).AsQueryable());
            mock.GroupManagerMock.Setup(g => g.Create(MembershipTestData.DivingGroup.Name, It.IsAny <bool>())).Returns(MembershipTestData.DivingGroup);
            mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.AsQueryable());
            var  id        = Guid.NewGuid();
            var  startDate = DateTime.Now;
            var  endDate   = DateTime.Now.AddDays(10);
            Role role      = new Role(id, Guid.NewGuid(), Resources.DefaultValues.PermissionSetName);

            role.Groups = new List <GroupInRole> {
                new GroupInRole(MembershipTestData.DivingGroupId, id)
            };
            mock.RoleManagerMock.Setup(r => r.Create(Resources.DefaultValues.PermissionSetName, It.IsAny <string>(), It.IsAny <IList <Permission> >())).Returns(role);
            mock.RoleManagerMock.Setup(m => m.PermissionQuery()).Returns(MembershipTestData.Permissions.AsQueryable());
            var model = MembershipTestData.DivingGroup.Map <GroupViewModel>();

            model.PermissionSetStartDate = startDate;
            model.PermissionSetEndDate   = endDate;
            model.Id             = Guid.Empty;
            model.UsePermissions = true;
            model.Roles          = new List <AssignRoleModel>();
            model.Permissions    = new List <AssignPermissionModel> {
                new AssignPermissionModel {
                    Name = MembershipTestData.CreateUserPermission.Name, Id = MembershipTestData.CreateUserPermissionId
                }
            };
            var result = mock.GroupService.Save(model);

            mock.RoleManagerMock.Verify(m => m.Create(Resources.DefaultValues.PermissionSetName, null, It.IsAny <IList <Permission> >()), Times.Once());
            mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
            Assert.AreEqual(startDate, role.Groups.First().StartDate);
            Assert.AreEqual(endDate, role.Groups.First().EndDate);
            Assert.AreEqual(1, role.Permissions.Count);
        }
 public void GetShouldRetrieveFilledGroupModelForUsingPermissions()
 {
     var mock = new GroupServiceMock();
     mock.DataSourceMock.Setup(m => m.Query<Group>()).Returns(MembershipTestData.Groups.AsQueryable());
     mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.DivingGroup);
     mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.Where(r => r.Permissions.Any(p => p.ApplicationId == MembershipTestData.AppId)).AsQueryable());
     var groupRoles = MembershipTestData.GroupsInRoles;
     var groupInRole = new GroupInRole(MembershipTestData.DivingGroupId, MembershipTestData.DivingPermissionSetRoleId);
     groupInRole.Role = MembershipTestData.DivingPermissionSetRole;
     groupRoles.Add(groupInRole);
     var groupRoleQuery = groupRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => g.Role).Map<AssignRoleModel>().AsQueryable();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(groupRoleQuery);
     mock.RoleManagerMock.Setup(p => p.PermissionQuery()).Returns(MembershipTestData.Permissions.Where(p => p.ApplicationId == MembershipTestData.AppId).AsQueryable());
     mock.RoleManagerMock.Setup(p => p.GetPermissionSetForGroup(MembershipTestData.DivingGroupId)).Returns(groupInRole);
     _userContextMock.Setup(m => m.GroupId).Returns(MembershipTestData.DivingGroupId);
     var result = mock.GroupService.Get(MembershipTestData.DivingGroupId);
     _userContextMock.Setup(m => m.GroupId).Returns(MembershipTestData.MainGroupId);
     Assert.IsNotNull(result);
     Assert.AreEqual(5, result.Roles.Count);
     Assert.AreEqual(2, result.Roles.Where(r => r.Selected).Count());
     Assert.AreEqual(4, result.Permissions.Count);
     Assert.AreEqual(1, result.Permissions.Where(r => r.Selected).Count());
     Assert.AreEqual(MembershipTestData.CreateUserPermission.Name, result.Permissions.First(r => r.Selected).Name);
 }
 public void ChangingFromUsingPermissionsToUsingRolesShouldRemoveGroupFromCustomRolesAndDeleteCustomRoles()
 {
     var mock = new GroupServiceMock();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel { Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers }).AsQueryable());
     var group = MembershipTestData.DivingGroup;
     group.UsePermissions = false;
     mock.GroupManagerMock.Setup(m => m.Query()).Returns(MembershipTestData.Groups.AsQueryable());
     mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, MembershipTestData.DivingGroup.Name, It.IsAny<bool>())).Returns(group);
     mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
     mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.AsQueryable());
     mock.RoleManagerMock.Setup(m => m.PermissionQuery()).Returns(MembershipTestData.Permissions.AsQueryable());
     var id = Guid.NewGuid();
     Role role = new Role(id, MembershipTestData.DivingGroupId, Resources.DefaultValues.PermissionSetName);
     role.Groups = new List<GroupInRole> { new GroupInRole(MembershipTestData.DivingGroupId, id) };
     mock.RoleManagerMock.Setup(r => r.Create(Resources.DefaultValues.PermissionSetName, It.IsAny<string>(), It.IsAny<IList<Permission>>())).Returns(role);
     var model = MembershipTestData.DivingGroup.Map<GroupViewModel>();
     model.UsePermissions = true;
     model.Permissions = new List<AssignPermissionModel>();
     var result = mock.GroupService.Save(model);
     mock.RoleManagerMock.Verify(m => m.RemoveGroupFromRoles(MembershipTestData.DivingGroupId, It.IsAny<string[]>()), Times.Once());
     mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
 }
 public void ChangingFromUsingRolesToUsingPermissionsShouldRemoveGroupFromRoles()
 {
     var mock = new GroupServiceMock();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel { Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers }).AsQueryable());
     var group = MembershipTestData.DivingGroup;
     group.UsePermissions = true;
     mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, MembershipTestData.DivingGroup.Name, It.IsAny<bool>())).Returns(group);
     mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
     mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.AsQueryable());
     var model = MembershipTestData.DivingGroup.Map<GroupViewModel>();
     model.Roles = new List<AssignRoleModel> { new AssignRoleModel { Id = MembershipTestData.GroupAdminRoleId, Name = MembershipTestData.GroupAdminRoleName, Selected = true }, new AssignRoleModel { Id = MembershipTestData.EditorRoleId, Name = MembershipTestData.EditorRoleName, Selected = true } };
     model.UsePermissions = false;
     var result = mock.GroupService.Save(model);
     mock.RoleManagerMock.Verify(m => m.RemoveGroupFromRoles(MembershipTestData.DivingGroupId, It.IsAny<string[]>()), Times.Once());
     mock.RoleManagerMock.Verify(m => m.Delete(MembershipTestData.DivingPermissionSetRoleId), Times.Once());
     mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
 }
 public void DeleteGroupWithUsersShouldDeleteGroupAndClearPermissionCache()
 {
     var mock = new GroupServiceMock();
     var groups = MembershipTestData.Groups;
     var group = groups.First(g => g.Id == MembershipTestData.DivingGroupId);
     mock.GroupManagerMock.Setup(g => g.Query()).Returns(groups.AsQueryable());
     mock.GroupService.Delete(MembershipTestData.DivingGroupId);
     mock.GroupManagerMock.Verify(m => m.Delete(MembershipTestData.DivingGroupId), Times.Once());
     mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
 }
 public void SaveAnExistingGroupWhenUsingRolesShouldSaveGroupAndRemoveUnselectedMainRoles()
 {
     var mock = new GroupServiceMock();
     var group = MembershipTestData.DivingGroup;
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel { Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers }).AsQueryable());
     mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
     mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, It.IsAny<string>(), It.IsAny<bool>())).Returns(MembershipTestData.DivingGroup);
     mock.UserManagerMock.Setup(m => m.Query()).Returns(MembershipTestData.Users.Where(u => u.Roles.Any(r => r.GroupRoleGroupId == MembershipTestData.DivingGroupId)).ToList().AsQueryable());
     var model = MembershipTestData.DivingGroup.Map<GroupViewModel>();
     model.Roles = new List<AssignRoleModel> { new AssignRoleModel { Id = MembershipTestData.GroupAdminRoleId, Name = MembershipTestData.GroupAdminRoleName, Selected = true }, new AssignRoleModel { Id = MembershipTestData.EditorRoleId, Name = MembershipTestData.EditorRoleName, Selected = false } };
     var result = mock.GroupService.Save(model);
     mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
     mock.RoleManagerMock.Verify(m => m.RemoveGroupFromRoles(MembershipTestData.DivingGroupId, It.IsAny<string[]>()), Times.Once());
 }
 public void SaveAnExistingGroupWhenUsingPermissionsShouldUpdateGroupUpdatePermissionSetRoleForGroupAndAllGroupRoleDatesAndAddAllSelectedPermissions()
 {
     var mock = new GroupServiceMock();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel { Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers }).AsQueryable());
     var group = MembershipTestData.DivingGroup;
     group.UsePermissions = true;
     mock.GroupManagerMock.Setup(g => g.Update(MembershipTestData.DivingGroupId, MembershipTestData.DivingGroup.Name, It.IsAny<bool>())).Returns(group);
     mock.GroupManagerMock.Setup(g => g.Get(MembershipTestData.DivingGroupId)).Returns(group);
     mock.RoleManagerMock.Setup(m => m.PermissionQuery()).Returns(MembershipTestData.Permissions.AsQueryable());
     var permissionSet = MembershipTestData.DivingGroupPermissionSet;
     permissionSet.StartDate = DateTime.Now.AddDays(-10);
     permissionSet.EndDate = DateTime.Now.AddDays(20);
     mock.RoleManagerMock.Setup(m => m.GetPermissionSetForGroup(MembershipTestData.DivingGroupId)).Returns(permissionSet);
     var startDate = DateTime.Now;
     var endDate = DateTime.Now.AddDays(10);
     var model = MembershipTestData.DivingGroup.Map<GroupViewModel>();
     model.PermissionSetStartDate = startDate;
     model.PermissionSetEndDate = endDate;
     model.UsePermissions = true;
     model.Roles = new List<AssignRoleModel>();
     model.Permissions = new List<AssignPermissionModel> { new AssignPermissionModel { Name = MembershipTestData.CreateUserPermission.Name, Id = MembershipTestData.CreateUserPermissionId }, new AssignPermissionModel { Name = MembershipTestData.ErrorLogPermission.Name, Id = MembershipTestData.ErrorLogPermissionId } };
     var result = mock.GroupService.Save(model);
     Assert.AreEqual(startDate, permissionSet.StartDate);
     Assert.AreEqual(endDate, permissionSet.EndDate);
     Assert.AreEqual(2, permissionSet.Role.Permissions.Count);
 }
 public void SaveANewGroupWhenUsingRolesShouldSaveGroupAndAddAllSelectedMainRoles()
 {
     var mock = new GroupServiceMock();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel { Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers }).AsQueryable());
     mock.GroupManagerMock.Setup(g => g.Create(MembershipTestData.DivingGroup.Name, It.IsAny<bool>())).Returns(MembershipTestData.DivingGroup);
     var groupRoleQuery = MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => g).Map<AssignRoleModel>().AsQueryable();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(new List<AssignRoleModel>().AsQueryable());
     var userRoleQuery = MembershipTestData.UsersInRoles.Where(g => g.UserId == MembershipTestData.DivingManagerId).Select(g => g.GroupRole).Map<AssignRoleModel>().AsQueryable();
     mock.RoleManagerMock.Setup(r => r.QueryForUser(MembershipTestData.DivingManagerId)).Returns(userRoleQuery);
     var model = MembershipTestData.DivingGroup.Map<GroupViewModel>();
     model.Id = Guid.Empty;
     model.Roles = new List<AssignRoleModel> { new AssignRoleModel { Id = MembershipTestData.GroupAdminRoleId, Name = MembershipTestData.GroupAdminRoleName, Selected = true }, new AssignRoleModel { Id = MembershipTestData.EditorRoleId, Name = MembershipTestData.EditorRoleName, Selected = true } };
     var result = mock.GroupService.Save(model);
     mock.RoleManagerMock.Verify(m => m.AddGroupToRole(MembershipTestData.DivingGroupId, It.IsAny<string>(), It.IsAny<DateTime?>(), It.IsAny<DateTime?>(), It.IsAny<int?>()), Times.Exactly(2));
     mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
 }
 public void SaveANewGroupWhenUsingPermissionsShouldSaveGroupCreatePermissionSetRoleForGroupAndAddAllSelectedPermissions()
 {
     var mock = new GroupServiceMock();
     mock.RoleManagerMock.Setup(r => r.QueryForGroup(MembershipTestData.DivingGroupId)).Returns(MembershipTestData.GroupsInRoles.Where(g => g.GroupId == MembershipTestData.DivingGroupId).Select(g => new AssignRoleModel { Id = g.RoleId, Name = g.Role.Name, CurrentNumberOfUsers = g.CurrentNumberOfUsers, MaxNumberOfUsers = g.MaxNumberOfUsers }).AsQueryable());
     mock.GroupManagerMock.Setup(g => g.Create(MembershipTestData.DivingGroup.Name, It.IsAny<bool>())).Returns(MembershipTestData.DivingGroup);
     mock.RoleManagerMock.Setup(r => r.Query()).Returns(MembershipTestData.Roles.AsQueryable());
     var id = Guid.NewGuid();
     var startDate = DateTime.Now;
     var endDate = DateTime.Now.AddDays(10);
     Role role = new Role(id, Guid.NewGuid(), Resources.DefaultValues.PermissionSetName);
     role.Groups = new List<GroupInRole> { new GroupInRole(MembershipTestData.DivingGroupId, id) };
     mock.RoleManagerMock.Setup(r => r.Create(Resources.DefaultValues.PermissionSetName, It.IsAny<string>(), It.IsAny<IList<Permission>>())).Returns(role);
     mock.RoleManagerMock.Setup(m => m.PermissionQuery()).Returns(MembershipTestData.Permissions.AsQueryable());
     var model = MembershipTestData.DivingGroup.Map<GroupViewModel>();
     model.PermissionSetStartDate = startDate;
     model.PermissionSetEndDate = endDate;
     model.Id = Guid.Empty;
     model.UsePermissions = true;
     model.Roles = new List<AssignRoleModel>();
     model.Permissions = new List<AssignPermissionModel> { new AssignPermissionModel { Name = MembershipTestData.CreateUserPermission.Name, Id = MembershipTestData.CreateUserPermissionId } };
     var result = mock.GroupService.Save(model);
     mock.RoleManagerMock.Verify(m => m.Create(Resources.DefaultValues.PermissionSetName, null, It.IsAny<IList<Permission>>()), Times.Once());
     mock.DataSourceMock.Verify(m => m.SaveChanges(), Times.Once());
     Assert.AreEqual(startDate, role.Groups.First().StartDate);
     Assert.AreEqual(endDate, role.Groups.First().EndDate);
     Assert.AreEqual(1, role.Permissions.Count);
 }