Ejemplo n.º 1
0
        public void TestSearchUsersWhenUserFoundWithLdap()
        {
            #region Arrange
            new FakeUsers(3, UserRepository);

            var directoryUser = new DirectoryUser();
            directoryUser.LoginId      = "test";
            directoryUser.EmailAddress = "*****@*****.**";
            directoryUser.LastName     = "SomeLast";
            directoryUser.FirstName    = "SomeFirst";
            DirectorySearchService.Expect(a => a.FindUser("test")).Return(directoryUser);

            #endregion Arrange

            #region Act
            var results = Controller.SearchUsers("Test")
                          .AssertResultIs <JsonNetResult>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(results);
            Assert.AreEqual("[{\"Id\":\"test\",\"Label\":\"SomeFirst SomeLast\"}]", results.JsonResultString);
            DirectorySearchService.AssertWasCalled(a => a.FindUser("test"));
            #endregion Assert
        }
        public void TestCreateGetReturnsView1()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "Me");
            var ldap = new DirectoryUser
            {
                LoginId      = "Me",
                FirstName    = "FirstName",
                LastName     = "LastNasme",
                EmailAddress = "*****@*****.**",
                PhoneNumber  = "999 999-9999"
            };
            DirectorySearchService.Expect(a => a.FindUser("Me")).Return(ldap);
            #endregion Arrange

            #region Act
            var result = Controller.Create()
                         .AssertViewRendered()
                         .WithViewData <DepartmentalAdminRequestViewModel>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.DepartmentalAdminRequest);
            Assert.IsNull(result.ExistingOrganizations);
            Assert.AreEqual("me", result.DepartmentalAdminRequest.Id);
            Assert.AreEqual("FirstName", result.DepartmentalAdminRequest.FirstName);
            Assert.AreEqual("LastNasme", result.DepartmentalAdminRequest.LastName);
            Assert.AreEqual("*****@*****.**", result.DepartmentalAdminRequest.Email);
            Assert.AreEqual("999 999-9999", result.DepartmentalAdminRequest.PhoneNumber);
            Assert.IsNull(result.DepartmentalAdminRequest.Organizations);
            #endregion Assert
        }
Ejemplo n.º 3
0
        public void TestWhenAlreadyExists()
        {
            #region Arrange
            var idValue       = "2";
            var directoryUser = new DirectoryUser();
            directoryUser.FirstName    = "Jimmy";
            directoryUser.LastName     = "James";
            directoryUser.EmailAddress = "*****@*****.**";
            DirectorySearchService.Expect(a => a.FindUser("2")).Return(directoryUser);
            new FakeDepartmentalAdminRequests(3, DepartmentalAdminRequestRepository);

            #endregion Arrange

            #region Act
            Controller.TookTraining(idValue);
            #endregion Act

            #region Assert
            Assert.AreEqual("Request created/Updated.", Controller.Message);
            DepartmentalAdminRequestRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <DepartmentalAdminRequest> .Is.Anything));
            var args = (DepartmentalAdminRequest)DepartmentalAdminRequestRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <DepartmentalAdminRequest> .Is.Anything))[0][0];
            Assert.AreEqual("2", args.Id);
            Assert.IsTrue(args.AttendedTraining);
            Assert.AreEqual("*****@*****.**", args.Email);
            Assert.AreEqual("Jimmy", args.FirstName);
            Assert.AreEqual("James", args.LastName);
            #endregion Assert
        }
Ejemplo n.º 4
0
        void btnResetPwd_Click(object sender, EventArgs e)
        {
            try
            {
                this._domainName       = ConfigurationManager.AppSettings["mmsDomainName"].ToString();
                this._adminOfDC        = ConfigurationManager.AppSettings["mmsAdminOfDC"].ToString();
                this._pwdOfDC          = ConfigurationManager.AppSettings["mmsPwdOfDC"].ToString();
                this._nameOfRootOU     = ConfigurationManager.AppSettings["mmsNameOfRootOU"].ToString();
                this._domainAbbreviate = ConfigurationManager.AppSettings["mmsDomainAbbreviate"].ToString();

                using (DirectoryContext dc = new DirectoryContext(this._domainName, this._adminOfDC, this._pwdOfDC))
                {
                    this.users = dc.Users;
                    DirectoryUser curUser = users.SingleOrDefault(u => (this._domainAbbreviate + "\\" + u.LogonName).ToLower() == SPContext.Current.Web.CurrentUser.LoginName.ToLower());
                    curUser.ChangePassword(this.txtOldPwd.Text.Trim(), this.txtNewPwd.Text.Trim());
                    dc.SubmitChanges();
                }
                ClientScript.RegisterClientScriptBlock(typeof(string), "ShowMessage", "<script>alert('修改密码成功!')</script>");
            }
            catch (Exception ex)
            {
                System.Reflection.MethodBase mb = System.Reflection.MethodBase.GetCurrentMethod();
                LogToDBHelper lhelper           = LogToDBHelper.Instance;
                lhelper.WriteLog(ex.Message, "错误", string.Format("{0}.{1}", mb.ReflectedType.Name, mb.Name));
                ClientScript.RegisterClientScriptBlock(typeof(string), "提示", string.Format("<script>alert('{0}')</script>", LogToDBHelper.LOG_MSG_LOADERROR));
            }
        }
Ejemplo n.º 5
0
        public void TestSearchUsersThrowsExceptionIfLdapDoesNotHaveRequiredFields2()
        {
            var thisFar = false;

            try
            {
                #region Arrange
                var directoryUser = new DirectoryUser();
                directoryUser.LoginId      = "test";
                directoryUser.EmailAddress = null;
                directoryUser.LastName     = "SomeLast";
                directoryUser.FirstName    = "SomeFirst";
                DirectorySearchService.Expect(a => a.FindUser("test")).Return(directoryUser);
                new FakeUsers(3, UserRepository);
                thisFar = true;
                #endregion Arrange

                #region Act
                Controller.SearchUsers("Test");
                #endregion Act
            }
            catch (Exception ex)
            {
                Assert.IsTrue(thisFar);
                Assert.IsNotNull(ex);
                Assert.AreEqual("Precondition failed.", ex.Message);
                throw;
            }
        }
Ejemplo n.º 6
0
 public DirectoryEditUserViewModel(DirectoryUser user)
 {
     _userId                     = user.Id;
     DirectoryUserName           = user.UserName;
     SelectedDirectoryUserStatus = DirectoryUserStatuses.First(s => s.Name == user.CurrentUserStatus.DirectoryUserStatus.Name);
     EditCommand                 = new RelayCommand(Edit);
 }
Ejemplo n.º 7
0
        public void GetDirectoryUsersTest()
        {
            IList <DirectoryUser> directoryUsers = new List <DirectoryUser>();
            DirectoryUser         dirUser        = new DirectoryUser();
            string       userName = "******";
            const string email    = "*****@*****.**";
            const string fullName = "TestUser";

            dirUser.Username = userName;
            dirUser.Email    = email;
            dirUser.FullName = fullName;
            directoryUsers.Add(dirUser);
            Expect.Call(directoryReaderMock.GetUsers()).Return(directoryUsers);

            mockRepository.ReplayAll();
            IDictionary <string, User> users = managerMock.GetDirectoryUsers();

            string userNameCI = userName.ToLowerInvariant();

            if (ConfigurationManager.AppSettings["IntegratedAuth"].Equals("true"))
            {
                userNameCI = "\\" + userNameCI;
            }

            Assert.IsNotEmpty((ICollection)users.Keys);
            Assert.AreEqual(users.Keys.Count, 1);
            Assert.IsTrue(users.Keys.Contains(userNameCI));
            Assert.AreEqual(users[userNameCI].Email, email);
            Assert.AreEqual(users[userNameCI].FullName, fullName);

            mockRepository.VerifyAll();
        }
        public void GetDirectoryUsersTest() {
            IList<DirectoryUser> directoryUsers = new List<DirectoryUser>();
            DirectoryUser dirUser = new DirectoryUser();
            string userName = "******";
            const string email = "*****@*****.**";
            const string fullName = "TestUser";

            dirUser.Username = userName;
            dirUser.Email = email;
            dirUser.FullName = fullName;
            directoryUsers.Add(dirUser);
            Expect.Call(directoryReaderMock.GetUsers()).Return(directoryUsers);

            mockRepository.ReplayAll();
            IDictionary<string, User> users = managerMock.GetDirectoryUsers();

            string userNameCI = userName.ToLowerInvariant();

            if (ConfigurationManager.AppSettings["IntegratedAuth"].Equals("true")) {
                userNameCI = "\\" + userNameCI;
            }

            Assert.IsNotEmpty((ICollection) users.Keys);
            Assert.AreEqual(users.Keys.Count, 1);
            Assert.IsTrue(users.Keys.Contains(userNameCI));
            Assert.AreEqual(users[userNameCI].Email, email);
            Assert.AreEqual(users[userNameCI].FullName, fullName);

            mockRepository.VerifyAll();
        }
        public IList <DirectoryUser> GetUsers()
        {
            IList <DirectoryUser> ldapUsersList = new List <DirectoryUser>();
            IList <string>        memberPaths   = GetMemberPaths(groupDN);

            foreach (string memberPath in memberPaths)
            {
                try {
                    DirectoryUser  user   = new DirectoryUser();
                    DirectoryEntry member = GetMember(memberPath);
                    SetUsername(user, member);
                    SetFullName(user, member);
                    SetEmail(user, member);
                    SetNickname(user, member);
                    ldapUsersList.Add(user);
                } catch (Exception ex) {
                    logger.ErrorException("Unable to read member from ldap, path: " + memberPath, ex);
                }
            }

            if (memberPaths.Count < 1)
            {
                logger.Warn("No members were returned from group: " + fullPath + ", group member attribute name: '" + groupMemberAttribute);
            }

            return(ldapUsersList);
        }
        public void TestSearchUsersReturnsExpectedResults3()
        {
            #region Arrange
            var users = new List <User>();
            for (int i = 0; i < 3; i++)
            {
                users.Add(CreateValidEntities.User(i + 1));
                users[i].Email = "email" + (i + 1);
            }
            new FakeUsers(0, UserRepository, users, false);
            var ldapLookup = new DirectoryUser();
            ldapLookup.EmailAddress = "*****@*****.**";
            ldapLookup.FirstName    = "Bob";
            ldapLookup.LastName     = "Loblaw";
            ldapLookup.LoginId      = "belogin";

            var ldapUsers = new List <DirectoryUser>();
            ldapUsers.Add(ldapLookup);

            SearchService.Expect(a => a.SearchUsers("bob")).Return(ldapUsers);
            #endregion Arrange

            #region Act
            var result = Controller.SearchUsers("Bob")
                         .AssertResultIs <JsonNetResult>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("[{\"Id\":\"belogin\",\"Label\":\"Bob Loblaw (belogin)\"}]", result.JsonResultString);
            UserRepository.AssertWasNotCalled(a => a.EnsurePersistent(Arg <User> .Is.Anything));
            SearchService.AssertWasCalled(a => a.SearchUsers("bob"));
            #endregion Assert
        }
 public IndividualLicenseViewModel(string username, string key, string programId, string version, DirectoryUser assignedToUser)
 {
     Username = username;
     Key = key;
     ProgramId = programId;
     Version = version;
     AssignedToUser = assignedToUser;
 }
Ejemplo n.º 12
0
 public AssignUser(string programId, string version, string licenseUsername, string licenseKey, DirectoryUser user)
 {
     _programId = programId;
     _version = version;
     _licenseUsername = licenseUsername;
     _licenseKey = licenseKey;
     _user = user;
 }
 private DirectoryUser CreateTestUser(string username) {
     DirectoryUser user = new DirectoryUser();
     user.Username = username;
     user.FullName = username + " " + username + "son";
     user.Nickname = username;
     user.Email = username + "@test.com";
     return user;
 }
 private void SetEmail(DirectoryUser user, DirectoryEntry member)
 {
     try {
         user.Email = member.Properties[mapEmail][0].ToString(); //email
     } catch (Exception ex) {
         logger.ErrorException("Unable to get email property for member: " + member.Path + ", email property name: " + mapEmail, ex);
         throw;
     }
 }
 private void SetNickname(DirectoryUser user, DirectoryEntry member)
 {
     try {
         user.Nickname = member.Properties[mapNickname][0].ToString(); //nickname
     } catch (Exception ex) {
         logger.ErrorException("Unable to get nickname property for member: " + member.Path + ", nickname property name: " + mapNickname, ex);
         throw;
     }
 }
        private DirectoryUser CreateTestUser(string username)
        {
            DirectoryUser user = new DirectoryUser();

            user.Username = username;
            user.FullName = username + " " + username + "son";
            user.Nickname = username;
            user.Email    = username + "@test.com";
            return(user);
        }
 private void SetUsername(DirectoryUser user, DirectoryEntry member)
 {
     try
     {
         string directoryUsername = member.Properties[mapUsername][0].ToString(); //username
         user.Username = useIntegratedAuth ? string.Format("{0}\\{1}", domain, directoryUsername) : directoryUsername;
     }
     catch (Exception ex) {
         logger.ErrorException("Unable to get username property for member: " + member.Path + ", username property name: " + mapUsername, ex);
         throw;
     }
 }
        public void TestCreatePostRedirectsWhenValid()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "Me");
            var ldap = new DirectoryUser
            {
                LoginId      = "Me",
                FirstName    = "FirstName",
                LastName     = "LastNasme",
                EmailAddress = "*****@*****.**",
                PhoneNumber  = "999 999-9999"
            };
            DirectorySearchService.Expect(a => a.FindUser("Me")).Return(ldap);
            new FakeDepartmentalAdminRequests(3, DepartmentalAdminRequestRepository);
            var departmentalAdminRequestViewModel = new DepartmentalAdminRequestViewModel();
            departmentalAdminRequestViewModel.DepartmentalAdminRequest = CreateValidEntities.DepartmentalAdminRequest(1);
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.SetIdTo("Me");
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.PhoneNumber     = "333 321-1234";
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.DepartmentSize  = 1;
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.SharedOrCluster = true;
            #endregion Arrange

            #region Act
            Controller.Create(departmentalAdminRequestViewModel, new List <string> {
                "1", "3"
            })
            .AssertActionRedirect()
            .ToAction <HomeController>(a => a.Index());
            #endregion Act

            #region Assert
            Assert.AreEqual("Request created.", Controller.Message);
            DepartmentalAdminRequestRepository.AssertWasCalled(
                a => a.EnsurePersistent(Arg <DepartmentalAdminRequest> .Is.Anything));
            var args =
                (DepartmentalAdminRequest)
                DepartmentalAdminRequestRepository.GetArgumentsForCallsMadeOn(
                    a => a.EnsurePersistent(Arg <DepartmentalAdminRequest> .Is.Anything))[0][0];
            Assert.IsNotNull(args);
            Assert.AreEqual("me", args.Id);
            Assert.AreEqual("FirstName", args.FirstName);
            Assert.AreEqual("LastNasme", args.LastName);
            Assert.AreEqual("*****@*****.**", args.Email);
            Assert.AreEqual(DateTime.UtcNow.ToPacificTime().Date, args.DateCreated.Date);
            Assert.AreEqual("1,3", args.Organizations);
            Assert.AreEqual("333 321-1234", args.PhoneNumber);
            Assert.AreEqual(true, args.SharedOrCluster);
            Assert.AreEqual(1, args.DepartmentSize);
            #endregion Assert
        }
        public void TestCreatePostRetursViewWhenInvalid2()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "1");
            var ldap = new DirectoryUser
            {
                LoginId      = "Me",
                FirstName    = "FirstName",
                LastName     = "LastNasme",
                EmailAddress = null,
                //"*****@*****.**",
                PhoneNumber = "999 999-9999"
            };
            DirectorySearchService.Expect(a => a.FindUser("1")).Return(ldap);
            var dars = new List <DepartmentalAdminRequest>();
            dars.Add(CreateValidEntities.DepartmentalAdminRequest(1));
            dars[0].Organizations = "This Will Be Replaced";
            new FakeDepartmentalAdminRequests(0, DepartmentalAdminRequestRepository, dars, false);
            var departmentalAdminRequestViewModel = new DepartmentalAdminRequestViewModel();
            departmentalAdminRequestViewModel.DepartmentalAdminRequest = CreateValidEntities.DepartmentalAdminRequest(1);
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.SetIdTo("Me");
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.PhoneNumber     = "333 321-1234";
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.DepartmentSize  = 1;
            departmentalAdminRequestViewModel.DepartmentalAdminRequest.SharedOrCluster = true;
            #endregion Arrange

            #region Act
            var results = Controller.Create(departmentalAdminRequestViewModel, new List <string> {
                "1", "3"
            })
                          .AssertViewRendered()
                          .WithViewData <DepartmentalAdminRequestViewModel>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(results);
            Controller.ModelState.AssertErrorsAre("The Email field is required.");
            Assert.AreEqual("There were Errors, please correct and try again.", Controller.ErrorMessage);
            Assert.AreEqual("1", results.DepartmentalAdminRequest.Id);
            Assert.AreEqual("FirstName", results.DepartmentalAdminRequest.FirstName);
            Assert.AreEqual("LastNasme", results.DepartmentalAdminRequest.LastName);
            Assert.AreEqual(null, results.DepartmentalAdminRequest.Email);
            Assert.AreEqual(DateTime.UtcNow.ToPacificTime().Date, results.DepartmentalAdminRequest.DateCreated.Date);
            Assert.AreEqual("1,3", results.DepartmentalAdminRequest.Organizations);
            Assert.AreEqual("333 321-1234", results.DepartmentalAdminRequest.PhoneNumber);
            Assert.AreEqual(true, results.DepartmentalAdminRequest.SharedOrCluster);
            Assert.AreEqual(1, results.DepartmentalAdminRequest.DepartmentSize);
            DepartmentalAdminRequestRepository.AssertWasCalled(a => a.GetNullableById("1"));
            #endregion Assert
        }
Ejemplo n.º 20
0
        public void TestAddPeoplePostReturnsViewWhenInvalid3()
        {
            #region Arrange
            SetupDataForPeopleList();
            var ldapUser = new DirectoryUser();
            ldapUser.FirstName = "Me";
            ldapUser.LastName  = "You";
            ldapUser.LoginId   = "Logger";
            SearchService.Expect(a => a.FindUser("Me")).Return(ldapUser);
            var postModel = new WorkgroupPeoplePostModel();
            postModel.Role = new Role();
            postModel.Role.SetIdTo(Role.Codes.DepartmentalAdmin);
            postModel.Role.Level = 1;
            postModel.Users      = new List <string>();
            postModel.Users.Add("1");
            postModel.Users.Add("Me");
            postModel.Users.Add("2");
            #endregion Arrange

            #region Act
            var result = Controller.AddPeople(3, postModel, null)
                         .AssertViewRendered()
                         .WithViewData <WorgroupPeopleCreateModel>();

            #endregion Act

            #region Assert
            SearchService.AssertWasCalled(a => a.FindUser("Me"));

            Controller.ModelState.AssertErrorsAre("Invalid Role Selected");
            Assert.IsNotNull(result);
            Assert.AreEqual(Role.Codes.DepartmentalAdmin, result.Role.Id);
            Assert.AreEqual(4, result.Roles.Count());
            Assert.AreEqual(Role.Codes.Requester, result.Roles[0].Id);
            Assert.AreEqual(Role.Codes.Approver, result.Roles[1].Id);
            Assert.AreEqual(Role.Codes.AccountManager, result.Roles[2].Id);
            Assert.AreEqual(Role.Codes.Purchaser, result.Roles[3].Id);
            Assert.AreEqual(3, result.Users.Count());
            Assert.AreEqual("FirstName1 LastName1 (1)", result.Users[0].DisplayNameAndId);
            Assert.AreEqual("Me You (Logger)", result.Users[1].DisplayNameAndId);
            Assert.AreEqual("FirstName2 LastName2 (2)", result.Users[2].DisplayNameAndId);

            Assert.AreEqual("Name3", result.Workgroup.Name);

            #endregion Assert
        }
Ejemplo n.º 21
0
        public static DirectoryUser MapToDirectoryUser(this Microsoft.Graph.User graphUser)
        {
            DirectoryUser user = new DirectoryUser
            {
                UserId            = graphUser.Id,
                EmailAddress      = graphUser.Mail,
                FirstName         = graphUser.GivenName,
                LastName          = graphUser.Surname,
                PreferredLanguage = graphUser.PreferredLanguage,
                Location          = graphUser.OfficeLocation,
                PhoneNumber       = graphUser.MobilePhone,
                DisplayName       = graphUser.DisplayName,
                UserPrincipalName = graphUser.UserPrincipalName,
                SamAccountName    = graphUser.OnPremisesSamAccountName,
                CompanyRole       = graphUser.JobTitle
            };

            return(user);
        }
        public void TestTryToAddPeopleWhenUserIsFoundWithLdap2()
        {
            #region Arrange
            //HttpContext.Current = new HttpContext(new HttpRequest(null, "http://test.org", null), new HttpResponse(null));
            //new FakeUsers(3, UserRepository);
            UserRepository.Expect(a => a.GetNullableById("LDAP")).Return(null).Repeat.Twice();
            UserRepository.Expect(a => a.GetNullableById("LDAP")).Return(CreateValidEntities.User(3)).Repeat.Once();

            new FakeWorkgroupPermissions(0, WorkgroupPermissionRepository);
            var failCount = 0;
            var dupCount  = 0;
            var notAdded  = new List <KeyValuePair <string, string> >();
            new FakeRoles(3, RepositoryFactory.RoleRepository);
            new FakeWorkgroups(3, WorkgroupRepository);
            var directoryUser = new DirectoryUser();
            directoryUser.LoginId      = "LDAP";
            directoryUser.EmailAddress = "*****@*****.**";
            directoryUser.FirstName    = "F3";
            directoryUser.LastName     = "Last3";
            SearchService.Expect(a => a.FindUser("LDAP")).Return(directoryUser);
            #endregion Arrange

            #region Act
            var result = WorkgroupService.TryToAddPeople(1, RepositoryFactory.RoleRepository.Queryable.Single(a => a.Id == "2"), new Workgroup(), 0, "LDAP", ref failCount, ref dupCount, notAdded);
            #endregion Act

            #region Assert
            Assert.AreEqual(1, result);
            Assert.AreEqual(0, failCount);
            Assert.AreEqual(0, dupCount);
            Assert.AreEqual(0, notAdded.Count());
            UserRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <User> .Is.Anything));
            EmailPreferencesRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <EmailPreferences> .Is.Anything));
            WorkgroupPermissionRepository.AssertWasCalled(a => a.EnsurePersistent(Arg <WorkgroupPermission> .Is.Anything));
            var args = (WorkgroupPermission)WorkgroupPermissionRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg <WorkgroupPermission> .Is.Anything))[0][0];
            Assert.IsNotNull(args);
            Assert.AreEqual("2", args.Role.Id);
            Assert.AreEqual("3", args.User.Id);
            Assert.AreEqual(1, args.Workgroup.Id);
            #endregion Assert
        }
Ejemplo n.º 23
0
        public void TestFindUser2()
        {
            #region Arrange
            const string searchTerm = "TestValue";
            AutomapperConfig.Configure();
            var directoryUser = new DirectoryUser();
            directoryUser.EmailAddress = "*****@*****.**";
            directoryUser.EmployeeId   = "EmployeeId";
            directoryUser.FirstName    = "FirstName";
            directoryUser.LastName     = "LastName";
            directoryUser.FullName     = "FullName";
            directoryUser.LoginId      = "LoginId";
            directoryUser.PhoneNumber  = "1 555 555 5555";

            DirectorySearchService.Expect(a => a.FindUser(searchTerm)).Return(directoryUser).Repeat.Any();
            #endregion Arrange

            #region Act
            var result = Controller.FindUser(searchTerm)
                         .AssertResultIs <JsonResult>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Data);
            var result2 = (ServiceUser)result.Data;
            Assert.IsNotNull(result2);
            Assert.AreEqual("*****@*****.**", result2.Email);
            Assert.AreEqual("FirstName", result2.FirstName);
            Assert.IsNull(result2.FullNameAndLogin);
            Assert.AreEqual("LastName", result2.LastName);
            Assert.AreEqual("LoginId", result2.Login);
            Assert.AreEqual("1 555 555 5555", result2.Phone);
            Assert.IsNull(result2.Roles);
            Assert.IsNull(result2.Units);

            Assert.AreEqual(JsonRequestBehavior.AllowGet, result.JsonRequestBehavior);
            DirectorySearchService.AssertWasCalled(a => a.FindUser(searchTerm));
            #endregion Assert
        }
        public void TestCreateGetReturnsView2()
        {
            #region Arrange
            Controller.ControllerContext.HttpContext = new MockHttpContext(0, new[] { "" }, "Me");
            var ldap = new DirectoryUser
            {
                LoginId      = "Me",
                FirstName    = "FirstName",
                LastName     = "LastNasme",
                EmailAddress = "*****@*****.**",
                PhoneNumber  = "999 999-9999"
            };
            DirectorySearchService.Expect(a => a.FindUser("Me")).Return(ldap);

            var daRequests = new List <DepartmentalAdminRequest>();
            daRequests.Add(CreateValidEntities.DepartmentalAdminRequest(1));
            daRequests[0].SetIdTo("Me");
            daRequests[0].Organizations = "1,2";
            new FakeDepartmentalAdminRequests(0, DepartmentalAdminRequestRepository, daRequests, true);
            new FakeOrganizations(2, OrganizationRepository);
            #endregion Arrange

            #region Act
            var result = Controller.Create()
                         .AssertViewRendered()
                         .WithViewData <DepartmentalAdminRequestViewModel>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.DepartmentalAdminRequest);
            Assert.IsNull(result.ExistingOrganizations);
            Assert.AreEqual("Me", result.DepartmentalAdminRequest.Id);
            Assert.AreEqual("FirstName", result.DepartmentalAdminRequest.FirstName);
            Assert.AreEqual("LastNasme", result.DepartmentalAdminRequest.LastName);
            Assert.AreEqual("*****@*****.**", result.DepartmentalAdminRequest.Email);
            Assert.AreEqual("999 999-9999", result.DepartmentalAdminRequest.PhoneNumber);
            Assert.AreEqual("1,2", result.DepartmentalAdminRequest.Organizations);
            #endregion Assert
        }
Ejemplo n.º 25
0
        public void TestFindPersonReturnsExpectedResult()
        {
            #region Arrange
            var directoryUser = new DirectoryUser();
            directoryUser.LoginId      = "someLogin";
            directoryUser.EmailAddress = "*****@*****.**";
            directoryUser.LastName     = "SomeLast";
            directoryUser.FirstName    = "SomeFirst";
            DirectorySearchService.Expect(a => a.FindUser("Test")).Return(directoryUser);
            #endregion Arrange

            #region Act
            var result = Controller.FindPerson("Test")
                         .AssertResultIs <JsonNetResult>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("{\"EmployeeId\":null,\"LoginId\":\"someLogin\",\"FirstName\":\"SomeFirst\",\"LastName\":\"SomeLast\",\"FullName\":null,\"EmailAddress\":\"[email protected]\",\"PhoneNumber\":null}", result.JsonResultString);
            DirectorySearchService.AssertWasCalled(a => a.FindUser("Test"));
            #endregion Assert
        }
        public void TestFindUsersWhenFound()
        {
            #region Arrange
            var user = new DirectoryUser();
            user.LoginId      = "test";
            user.EmailAddress = "*****@*****.**";
            user.FirstName    = "FN";
            user.LastName     = "LN";
            new FakeUsers(3, UserRepository);
            SearchService.Expect(a => a.FindUser("test")).Return(user);
            #endregion Arrange

            #region Act
            var result = Controller.FindUser("Test")
                         .AssertResultIs <JsonNetResult>();
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("[{\"id\":\"test\",\"FirstName\":\"FN\",\"LastName\":\"LN\",\"Email\":\"[email protected]\",\"IsActive\":true}]", result.JsonResultString);
            SearchService.AssertWasCalled(a => a.FindUser("test"));
            #endregion Assert
        }
Ejemplo n.º 27
0
        public ActionResult AddConditionalApproval(int id, ConditionalApproval conditionalApproval, string primaryApproverParm, string secondaryApproverParm)
        {
            ViewBag.StepNumber = 11;
            // TODO Check that primary and secondary approvers are in db, add if not. Double check against ConditionalApprover controller
            var workgroup = _workgroupRepository.GetNullableById(id);

            if (workgroup == null)
            {
                Message = "Workgroup not found.";
                this.RedirectToAction <WorkgroupController>(a => a.Index(false));
            }
            ViewBag.IsAccountSync = workgroup.SyncAccounts;

            var primaryApproverInDb   = GetUserBySearchTerm(primaryApproverParm);
            var secondaryApproverInDb = string.IsNullOrWhiteSpace(secondaryApproverParm)
                                            ? null
                                            : GetUserBySearchTerm(secondaryApproverParm);

            if (primaryApproverInDb == null)
            {
                DirectoryUser primaryApproverInLdap = _searchService.FindUser(primaryApproverParm);

                if (primaryApproverInLdap == null)
                {
                    ModelState.AddModelError("primaryApproverParm",
                                             "No user could be found with the kerberos or email address entered");
                }
                else //found the primary approver in ldap
                {
                    primaryApproverInDb = new User(primaryApproverInLdap.LoginId)
                    {
                        FirstName = primaryApproverInLdap.FirstName,
                        LastName  = primaryApproverInLdap.LastName,
                        Email     = primaryApproverInLdap.EmailAddress,
                        IsActive  = true
                    };

                    _userRepository.EnsurePersistent(primaryApproverInDb, forceSave: true);
                }
            }

            if (!string.IsNullOrWhiteSpace(secondaryApproverParm)) //only check if a value was provided
            {
                if (secondaryApproverInDb == null)
                {
                    DirectoryUser secondaryApproverInLdap = _searchService.FindUser(secondaryApproverParm);

                    if (secondaryApproverInLdap == null)
                    {
                        ModelState.AddModelError("secondaryApproverParm",
                                                 "No user could be found with the kerberos or email address entered");
                    }
                    else //found the secondary approver in ldap
                    {
                        secondaryApproverInDb = new User(secondaryApproverInLdap.LoginId)
                        {
                            FirstName = secondaryApproverInLdap.FirstName,
                            LastName  = secondaryApproverInLdap.LastName,
                            Email     = secondaryApproverInLdap.EmailAddress,
                            IsActive  = true
                        };

                        _userRepository.EnsurePersistent(secondaryApproverInDb, forceSave: true);
                    }
                }
            }

            conditionalApproval.PrimaryApprover   = primaryApproverInDb;
            conditionalApproval.SecondaryApprover = secondaryApproverInDb;
            conditionalApproval.Workgroup         = workgroup;
            ModelState.Clear();
            conditionalApproval.TransferValidationMessagesTo(ModelState);

            if (ModelState.IsValid)
            {
                var newConditionalApproval = new ConditionalApproval
                {
                    Question          = conditionalApproval.Question,
                    Organization      = conditionalApproval.Organization,
                    Workgroup         = workgroup,
                    PrimaryApprover   = primaryApproverInDb,
                    SecondaryApprover = secondaryApproverInDb
                };
                Repository.OfType <ConditionalApproval>().EnsurePersistent(newConditionalApproval);
                return(this.RedirectToAction(a => a.ConditionalApprovals(id)));
            }
            conditionalApproval.Workgroup = workgroup;
            return(View(conditionalApproval));
        }
        public ActionResult Create(int?workgroupId, string orgId, ConditionalApprovalModifyModel modifyModel)
        {
            if (workgroupId.HasValue)
            {
                ViewBag.WorkgroupId      = workgroupId.Value;
                modifyModel.ApprovalType = WorkgroupType;
                modifyModel.Workgroup    = _workgroupRepository.GetNullableById(workgroupId.Value);
                var workgroup = _workgroupRepository.Queryable.Single(a => a.Id == workgroupId.Value);
                if (workgroup.Administrative)
                {
                    ErrorMessage = "Conditional Approval may not be added to an administrative workgroup.";
                    return(this.RedirectToAction <WizardController>(a => a.Details(workgroup.Id)));
                }
            }
            else if (!string.IsNullOrWhiteSpace(orgId))
            {
                modifyModel.ApprovalType = OrganizationType;
                modifyModel.Organization = _organizationRepository.GetNullableById(orgId);
                ViewBag.OrganizationId   = orgId;
            }

            var primaryApproverInDb   = GetUserBySearchTerm(modifyModel.PrimaryApprover);
            var secondaryApproverInDb = string.IsNullOrWhiteSpace(modifyModel.SecondaryApprover)
                                            ? null
                                            : GetUserBySearchTerm(modifyModel.SecondaryApprover);

            if (primaryApproverInDb == null)
            {
                DirectoryUser primaryApproverInLdap = _directorySearchService.FindUser(modifyModel.PrimaryApprover);

                if (primaryApproverInLdap == null)
                {
                    ModelState.AddModelError("primaryapprover",
                                             "No user could be found with the kerberos or email address entered");
                }
                else //found the primary approver in ldap
                {
                    primaryApproverInDb = new User(primaryApproverInLdap.LoginId)
                    {
                        FirstName = primaryApproverInLdap.FirstName,
                        LastName  = primaryApproverInLdap.LastName,
                        Email     = primaryApproverInLdap.EmailAddress,
                        IsActive  = true
                    };

                    _userRepository.EnsurePersistent(primaryApproverInDb, forceSave: true);
                }
            }

            if (!string.IsNullOrWhiteSpace(modifyModel.SecondaryApprover)) //only check if a value was provided
            {
                if (secondaryApproverInDb == null)
                {
                    DirectoryUser secondaryApproverInLdap = _directorySearchService.FindUser(modifyModel.SecondaryApprover);

                    if (secondaryApproverInLdap == null)
                    {
                        ModelState.AddModelError("secondaryapprover",
                                                 "No user could be found with the kerberos or email address entered");
                    }
                    else //found the secondary approver in ldap
                    {
                        secondaryApproverInDb = new User(secondaryApproverInLdap.LoginId)
                        {
                            FirstName = secondaryApproverInLdap.FirstName,
                            LastName  = secondaryApproverInLdap.LastName,
                            Email     = secondaryApproverInLdap.EmailAddress,
                            IsActive  = true
                        };

                        _userRepository.EnsurePersistent(secondaryApproverInDb, forceSave: true);
                    }
                }
            }

            if (!ModelState.IsValid)
            {
                return(View(CreateModifyModel(modifyModel.ApprovalType, modifyModel)));
            }

            Check.Require(modifyModel.Workgroup != null || modifyModel.Organization != null, "Must have a Workgroup or an Organization");

            var newConditionalApproval = new ConditionalApproval
            {
                Question          = modifyModel.Question,
                Organization      = modifyModel.Organization,
                Workgroup         = modifyModel.Workgroup,
                PrimaryApprover   = primaryApproverInDb,
                SecondaryApprover = secondaryApproverInDb
            };

            _conditionalApprovalRepository.EnsurePersistent(newConditionalApproval);

            Message = "Conditional approval added successfully";

            if (workgroupId.HasValue)
            {
                return(this.RedirectToAction(a => a.ByWorkgroup(workgroupId.Value)));
            }

            if (!string.IsNullOrWhiteSpace(orgId))
            {
                return(this.RedirectToAction(a => a.ByOrg(orgId)));
            }

            //return this.RedirectToAction(a => a.Index());
            return(this.RedirectToAction <ErrorController>(a => a.Index()));
        }
Ejemplo n.º 29
0
        public void TestAddPeoplePostRedirectsToPeople1()
        {
            #region Arrange
            SetupDataForPeopleList();
            string message   = "Fake Message";
            int    failCount = 2;
            SecurityService.Expect(a => a.HasWorkgroupOrOrganizationAccess(Arg <Workgroup> .Is.Anything, Arg <Organization> .Is.Anything, out Arg <string> .Out(message).Dummy)).Return(true);
            WorkgroupService.Expect(a => a.TryToAddPeople(
                                        Arg <int> .Is.Anything,
                                        Arg <Role> .Is.Anything,
                                        Arg <Workgroup> .Is.Anything,
                                        Arg <int> .Is.Anything,
                                        Arg <string> .Is.Anything,
                                        ref Arg <int> .Ref(Is.Anything(), failCount).Dummy,
                                        ref Arg <int> .Ref(Is.Anything(), failCount).Dummy,
                                        Arg <List <KeyValuePair <string, string> > > .Is.Anything)).Return(7).Repeat.Any();

            var ldapUser = new DirectoryUser();
            ldapUser.FirstName    = "Me";
            ldapUser.LastName     = "You";
            ldapUser.LoginId      = "Logger";
            ldapUser.EmailAddress = "*****@*****.**";
            SearchService.Expect(a => a.FindUser("Me")).Return(ldapUser);
            var postModel = new WorkgroupPeoplePostModel();
            postModel.Role  = RoleRepository.GetNullableById(Role.Codes.AccountManager);
            postModel.Users = new List <string>();
            postModel.Users.Add("1");
            postModel.Users.Add("Me");
            postModel.Users.Add("2");
            postModel.Users.Add("3");
            #endregion Arrange

            #region Act
            var result = Controller.AddPeople(3, postModel, null)
                         .AssertActionRedirect()
                         .ToAction <WorkgroupController>(a => a.People(3, null));
            #endregion Act

            #region Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.RouteValues["id"]);
            Assert.AreEqual(Role.Codes.AccountManager, result.RouteValues["roleFilter"]);

            WorkgroupService.AssertWasCalled(a => a.TryToAddPeople(
                                                 Arg <int> .Is.Anything,
                                                 Arg <Role> .Is.Anything,
                                                 Arg <Workgroup> .Is.Anything,
                                                 Arg <int> .Is.Anything,
                                                 Arg <string> .Is.Anything,
                                                 ref Arg <int> .Ref(Is.Anything(), failCount).Dummy,
                                                 ref Arg <int> .Ref(Is.Anything(), failCount).Dummy,
                                                 Arg <List <KeyValuePair <string, string> > > .Is.Anything), x => x.Repeat.Times(4));

            var args = WorkgroupService.GetArgumentsForCallsMadeOn(a => a.TryToAddPeople(Arg <int> .Is.Anything,
                                                                                         Arg <Role> .Is.Anything,
                                                                                         Arg <Workgroup> .Is.Anything,
                                                                                         Arg <int> .Is.Anything,
                                                                                         Arg <string> .Is.Anything,
                                                                                         ref Arg <int> .Ref(Is.Anything(), failCount).Dummy,
                                                                                         ref Arg <int> .Ref(Is.Anything(), failCount).Dummy,
                                                                                         Arg <List <KeyValuePair <string, string> > > .Is.Anything));

            Assert.AreEqual(4, args.Count());
            Assert.AreEqual(3, args[0][0]);
            Assert.AreEqual("AM", ((Role)args[0][1]).Id);
            Assert.AreEqual(3, ((Workgroup)args[0][2]).Id);
            Assert.AreEqual(0, args[0][3]);
            Assert.AreEqual(7, args[1][3]);
            Assert.AreEqual("1", args[0][4]);
            Assert.AreEqual("Me", args[1][4]);
            Assert.AreEqual("2", args[2][4]);
            Assert.AreEqual("3", args[3][4]);
            Assert.AreEqual(2, args[0][5]);


            Assert.AreEqual("Successfully added 7 people to workgroup as Account Manager. 2 not added because of duplicated role.", Controller.Message);
            #endregion Assert
        }
Ejemplo n.º 30
0
 public ServiceUser(DirectoryUser directoryUser)
 {
     //Map from the directory user to this
     Mapper.Map(directoryUser, this);
 }
Ejemplo n.º 31
0
 public void WithData(string key, string username, string programId, string version, DirectoryUser currentUser)
 {
     Key = key;
     Username = username;
     ProgramId = programId;
     Version = version;
     SelectedUser = currentUser;
 }