Exemplo n.º 1
0
        public void Execute()
        {
            lock (_lock)
            {
                if (_shuttingDown)
                {
                    return;
                }

                var appContext = ApplicationContext.Current;
                var repo = new EasyADRepository(appContext.DatabaseContext.Database, appContext.DatabaseContext.SqlSyntax);
                var groupManager = GroupBasedUserManagerResolver.Current.Manager;
                var handler = new RefreshGroupsHandler(repo, groupManager, appContext.Services.UserService);
                handler.Handle();
            }
        }
Exemplo n.º 2
0
        public void RefreshGroupNewUserGetsAddedToGroup()
        {
            //Arrange
            int initialUserCount = GetUserCount();
            var group = CreateWritersGroup();
            var newUser = ADUsers.MichaelJohnson;
            var handler = new RefreshGroupsHandler(Repo, Manager, Services.UserService);

            //Act
            var groups = Repo.GetAll();
            Manager.AddUsers(group.Name, newUser);
            handler.Handle();
            var afterRefreshUserCount = GetUserCount();
            var user = Services.UserService.GetByUsername(newUser.Login);

            //Assert
            Assert.AreEqual(1, initialUserCount, "Initial count");
            Assert.AreEqual(3, afterRefreshUserCount, "After refresh count");

            Assert.IsNotNull(user);
            Assert.AreEqual(newUser.DisplayName, user.Name);
            Assert.AreEqual(newUser.Email, user.Email);

            AssertUserForGroup(user, group);
        }
Exemplo n.º 3
0
        public void RefreshGroupGroupNoLongerExistsRemovesUser()
        {
            //Arrange
            int initialUserCount = GetUserCount();
            var group = CreateWritersGroup();
            int afterAddUserCount = GetUserCount();
            Manager.RemoveGroup(group.Name);

            var handler = new RefreshGroupsHandler(Repo, Manager, Services.UserService);

            //Act
            handler.Handle();
            var afterRefreshUserCount = GetUserCount();

            //Assert
            Assert.AreEqual(1, initialUserCount, "Initial count");
            Assert.AreEqual(2, afterAddUserCount, "After add count");
            Assert.AreEqual(1, afterRefreshUserCount, "After refresh count");
        }
Exemplo n.º 4
0
        public void RefreshGroupExistingUserInMultipleGroupsGetsRemovedFromGroup()
        {
            //Arrange
            int initialUserCount = GetUserCount();
            var group1 = CreateWritersGroup();
            var group2 = CreateEditorsGroup();
            int afterAddUserCount = GetUserCount();

            var handler = new RefreshGroupsHandler(Repo, Manager, Services.UserService);

            //Act
            var groups = Repo.GetAll();
            Manager.RemoveUsers(group2.Name, ADUsers.AndrewDavis.Login);
            handler.Handle();
            var afterRefreshUserCount = GetUserCount();
            var userA = Services.UserService.GetByUsername(ADUsers.AndrewDavis.Login);
            var userB = Services.UserService.GetByUsername(ADUsers.ChristopherMoore.Login);

            //Assert
            Assert.AreEqual(1, initialUserCount, "Initial count");
            Assert.AreEqual(3, afterAddUserCount, "After add count");
            Assert.AreEqual(3, afterRefreshUserCount, "After refresh count");

            AssertUserForGroup(userA, group1);
            AssertUserForGroup(userB, group2);
        }
Exemplo n.º 5
0
        public void RefreshGroupExistingUserGetsRemovedFromGroup()
        {
            //Arrange
            int initialUserCount = GetUserCount();
            var group = CreateWritersGroup();

            var handler = new RefreshGroupsHandler(Repo, Manager, Services.UserService);

            //Act
            var groups = Repo.GetAll();
            Manager.RemoveUsers(group.Name, ADUsers.AndrewDavis.Login);
            handler.Handle();
            var user = Services.UserService.GetByUsername(ADUsers.AndrewDavis.Login);
            var afterRefreshUserCount = GetUserCount();

            //Assert
            Assert.AreEqual(1, initialUserCount, "Initial count");
            Assert.AreEqual(1, afterRefreshUserCount, "After refresh count");

            Assert.IsNull(user);
        }
Exemplo n.º 6
0
        public void RefreshGroupExistingUserGetsAddedToGreaterRightsGroup()
        {
            //Arrange
            int initialUserCount = GetUserCount();
            var adminGroup = CreateAdminsGroup();
            var writersGroup = CreateWritersGroup();
            int afterAddUserCount = GetUserCount();

            var handler = new RefreshGroupsHandler(Repo, Manager, Services.UserService);

            //Act
            var groups = Repo.GetAll();
            Manager.AddUsers(adminGroup.Name, ADUsers.AndrewDavis);
            handler.Handle();

            var afterRefreshUserCount = GetUserCount();
            var userA = Services.UserService.GetByUsername(ADUsers.AndrewDavis.Login);

            //Assert
            Assert.AreEqual(1, initialUserCount, "Initial count");
            Assert.AreEqual(4, afterAddUserCount, "After add count");
            Assert.AreEqual(4, afterRefreshUserCount, "After refresh count");

            AssertUserForGroup(userA, adminGroup);
        }