private ActionResult GetCompanyView(AppraiserUserCompanyInfoViewModel appraiserCompanyViewModel, int? userId) { ViewBag.Header = appraiserCompanyViewModel.SectionTitle; ViewBag.IsOwnPage = appraiserCompanyViewModel.IsOwnPage; ViewBag.CurrentStep = NameHelper.AppraiserProfile.Company; return View(NameHelper.AppraiserProfile.Company, GetViewModel(appraiserCompanyViewModel, userId)); }
public ActionResult Company(AppraiserUserCompanyInfoViewModel companyModel, string nextStep, int? userId = null) { if (companyModel.EditUserId == 0) { companyModel.EditUserId = userId.HasValue ? userId.Value : 0; } SkipCompanyNameValidation(); if (ModelState.IsValid) { //according to CompanyInfo.cshtml if (!companyModel.IsCompanyAdmin.GetValueOrDefault(true) && !companyModel.IsOwnPage) { bool wasCompanyChanged = false; var oldCompanyData = _appraiserUserService.GetAppraiserCompanyInfo(User.Identity.Name, companyModel.EditUserId); if (SecurityContext.CurrentUser.HasUserAnyRoles(RoleType.DvsAdmin, RoleType.DvsSuperAdmin)) { if (NameHelper.AppraiserProfile.Company.Equals(nextStep)) { oldCompanyData.CompanyID = companyModel.CompanyID; oldCompanyData.BranchID = companyModel.BranchID; wasCompanyChanged = true; } else if (oldCompanyData.CompanyID == companyModel.CompanyID) { oldCompanyData.BranchID = companyModel.BranchID; } } else { oldCompanyData.BranchID = companyModel.BranchID; } _appraiserUserService.SaveAppraiserCompany(oldCompanyData, User.Identity.Name); CommitProviderInstance.Commit(); if (wasCompanyChanged) { var viewModel = _appraiserUserService.GetAppraiserCompanyInfo(User.Identity.Name, companyModel.EditUserId); viewModel.NotificationMessage = Constants.Notifications.CompanySaved; TempData[_appraiserCompanyKey] = viewModel; } } return RedirectToStep(nextStep, companyModel.EditUserId, companyModel.IsOwnPage); } TempData[_appraiserCompanyKey] = companyModel; return RedirectToStep(NameHelper.AppraiserProfile.Company, companyModel.EditUserId, companyModel.IsOwnPage); }
public void SaveAppraiserUser_should_throw_exception_if_company_admin_assigns_user_to_inactive_branch() { var companyInfo = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1 }; companyInfo.Branches = new List<AppraiserUserCompanyInfoBranchViewModel>(new AppraiserUserCompanyInfoBranchViewModel[] { new AppraiserUserCompanyInfoBranchViewModel() { BranchID = 1, Status = AppraisalCompanyStatus.Inactive} }); var companyAdminRole = Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin); User user = new User() { Roles = new List<Role>(new Role[] { companyAdminRole }) }; _userManager.GetByEmail(Arg.Any<string>()).Returns(user); _appraiserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo); _companyService.GetAppraisalCompanyDetails(Arg.Any<int>()).Returns(new AppraisalCompanyDetailsViewModel() { Status = AppraisalCompanyStatus.Applied }); var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null); viewContext.HttpContext.User.IsInRole(companyAdminRole.RoleType.ToString()).Returns(true); _target.CommitProviderInstance = Substitute.For<ICommitProvider>(); _target.SetFakeControllerContext(viewContext.HttpContext); var addressViewModel = new AddressViewModel(); var appraiserUserContactViewModel = new AppraiserUserContactViewModel { PhysicalAddress = addressViewModel }; var userModel = new AppraiserUserCreateViewModel() { GeneralInfo = new CreateUserGeneralInfoViewModel() { RoleType = RoleType.Appraiser }, Contact = appraiserUserContactViewModel, }; var companyModel = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1, BranchID = 2 }; // act _target.Invoking(a => a.SaveAppraiserUser(userModel, companyModel, true)).ShouldThrow<ArgumentException>(); }
public void Index_should_return_view_for_appraisal_company_admin() { var companyAdminRole = Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin); User user = new User() { Roles = new List<Role>(new Role[] { companyAdminRole }) }; _userManager.GetByEmail(Arg.Any<string>()).Returns(user); var companyInfo = new AppraiserUserCompanyInfoViewModel(); _appraiserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo); var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null); viewContext.HttpContext.User.IsInRole(companyAdminRole.RoleType.ToString()).Returns(true); _companyService.GetAppraisalCompanyDetails(Arg.Any<int>()).Returns(new AppraisalCompanyDetailsViewModel() { Status = AppraisalCompanyStatus.Applied }); _target.SetFakeControllerContext(viewContext.HttpContext); // act var actual = _target.Index(null); actual.Should().NotBeNull().And.BeOfType<ViewResult>(); ((ViewResult)actual).Model.Should().NotBeNull().And.BeOfType<AppraiserUserCreateViewModel>(); }
public void CompanyInfo_should_throw_exception_if_illegal_branch_id_passed() { var companyAdminRole = Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin); new User { Roles = new List<Role>(new[] { companyAdminRole }) }; var companyInfo = new AppraiserUserCompanyInfoViewModel { CompanyID = 1 }; AppraiserUserService.GetAppraiserCompanyInfo(Arg.Any<string>()).ReturnsForAnyArgs(companyInfo); var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); new GenericPrincipal(new GenericIdentity("someUser"), null); viewContext.HttpContext.User.IsInRole(companyAdminRole.RoleType.ToString()).Returns(true); Target.SetFakeControllerContext(viewContext.HttpContext); // act Target.Invoking(a => a.CompanyInfo(1, 1, RoleType.Appraiser, null, false, "string")).ShouldThrow<ArgumentException>(); }
public ActionResult SaveAppraiserUser(AppraiserUserCreateViewModel user, AppraiserUserCompanyInfoViewModel company, bool? toRedirect) { var validateAddress = new ValidateAddressArg { City = user.Contact.PhysicalAddress.City, State = user.Contact.PhysicalAddress.State, Street = user.Contact.PhysicalAddress.Street, ZIP = user.Contact.PhysicalAddress.ZIP }; var geocodingValidationResult = _geocodingValidation.ValidateAddress(validateAddress); if (!geocodingValidationResult.IsValid) { TempData[GeocodingErrorMessage] = Constants.ErrorMessages.GeocodingVerificationError; TempData[_appraiserCreationKey] = user; return RedirectToAction(NameHelper.AppraiserUserAdd.Index); } user.CompanyInfo = company; SkipConditionalValidation(user); if (!ModelState.IsValid) { return View(NameHelper.AppraiserUserAdd.Index, user); } SaveUser(user); _taskManager.ScheduleManuallyRegisteredUserNotification(user.GeneralInfo.Email, user.GeneralInfo.Password); if (toRedirect.GetValueOrDefault(false)) { if (!string.IsNullOrEmpty(user.PreviousUrl)) { return Redirect(user.PreviousUrl); } return View(NameHelper.AppraiserUserAdd.Index, user); } AppraiserUserCreateViewModel newUser = new AppraiserUserCreateViewModel(); newUser.PreviousUrl = user.PreviousUrl; newUser.Contact.Phones.PhoneItems.Add(new PhoneItemViewModel() { Id = Guid.NewGuid().ToString(), PhoneType = PhoneType.Mobile }); TempData[_appraiserCreationKey] = newUser; if (!string.IsNullOrEmpty(user.PreviousUrl) && user.PreviousUrl.Contains(NameHelper.AppraisalCompaniesPipeline.Controller)) { return RedirectToAction(NameHelper.AppraiserUserAdd.Index, new { appraisalCompanyId = company.CompanyID }); } return RedirectToAction(NameHelper.AppraiserUserAdd.Index); }
public void Index_should_return_only_active_branches() { var companyInfo = new AppraiserUserCompanyInfoViewModel(); companyInfo.Branches = new List<AppraiserUserCompanyInfoBranchViewModel>(new AppraiserUserCompanyInfoBranchViewModel[] { new AppraiserUserCompanyInfoBranchViewModel() {Status = AppraisalCompanyStatus.Active}, new AppraiserUserCompanyInfoBranchViewModel() {Status = AppraisalCompanyStatus.Inactive} }); _appraiserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo); _companyService.GetAppraisalCompanyDetails(Arg.Any<int>()).Returns(new AppraisalCompanyDetailsViewModel() { Status = AppraisalCompanyStatus.Applied }); var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null); var dvsAdminRole = Singletones.ReferenceManager.GetRole(RoleType.DvsAdmin); viewContext.HttpContext.User.IsInRole(dvsAdminRole.RoleType.ToString()).Returns(true); _target.SetFakeControllerContext(viewContext.HttpContext); // act var actual = _target.Index(null); actual.Should().NotBeNull().And.BeOfType<ViewResult>(); ((ViewResult)actual).Model.Should().NotBeNull().And.BeOfType<AppraiserUserCreateViewModel>(); ((AppraiserUserCreateViewModel)((ViewResult)actual).Model).CompanyInfo.Branches.Should().NotContain(e => e.Status == AppraisalCompanyStatus.Inactive); }
public void CompanyInfo_should_return_only_active_branches() { var dvsAdminRole = Singletones.ReferenceManager.GetRole(RoleType.DvsAdmin); new User() { Roles = new List<Role>(new Role[] { dvsAdminRole }) }; var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); new GenericPrincipal(new GenericIdentity("someUser"), null); viewContext.HttpContext.User.IsInRole(dvsAdminRole.RoleType.ToString()).Returns(true); var companyInfo = new AppraiserUserCompanyInfoViewModel(); companyInfo.Branches = new List<AppraiserUserCompanyInfoBranchViewModel>(new[] { new AppraiserUserCompanyInfoBranchViewModel {Status = AppraisalCompanyStatus.Active}, new AppraiserUserCompanyInfoBranchViewModel {Status = AppraisalCompanyStatus.Inactive} }); AppraisalCompanyService.GetAppraiserUserCompanyInfo(Arg.Any<int>(), Arg.Any<int?>()).Returns(companyInfo); ReferenceManager.GetRolesForAppraisers().Returns(new Dictionary<int, string> { { (int)RoleType.Appraiser, RoleType.Appraiser.ToString() } }); Target.SetFakeControllerContext(viewContext.HttpContext); // act var actual = Target.CompanyInfo(1, 0, RoleType.Appraiser, null, false, "string"); actual.Should().NotBeNull().And.BeOfType<PartialViewResult>(); ((PartialViewResult)actual).Model.Should().NotBeNull().And.BeOfType<AppraiserUserCompanyInfoViewModel>(); ((AppraiserUserCompanyInfoViewModel)((PartialViewResult)actual).Model).Branches.Should().NotContain(e => e.Status == AppraisalCompanyStatus.Inactive); }
public void CreateAppraiserUser_should_throw_exception_if_user_assigned_to_nonexsistent_branch() { var company = new AppraisalCompanyDetail() { Branches = new List<AppraisalCompanyBranch>() }; ReferenceManager.GetRole(Arg.Any<RoleType>()).Returns(new Role() { Id = (int)RoleType.Appraiser }); AppraisalCompanyManager.GetAppraisalCompanyById(1).Returns(company); var generalInfo = new CreateUserGeneralInfoViewModel() { Email = "email", Password = "******" }; AppraiserUser appUser = new AppraiserUser(); appUser.User = new User(); appUser.User.Roles = new List<Role>() { new Role() { Id = (int)RoleType.Appraiser } }; AppraiserManager.CheckAndCreateAppraiserUser(Arg.Any<User>(), generalInfo.Password, Arg.Any<AppraiserUserStatus>()).Returns(appUser); var contactInfo = new AppraiserUserContactViewModel() { PhysicalAddress = new AddressViewModel() }; var companyInfo = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1, BranchID = 10 }; var appraiser = new AppraiserUserCreateViewModel() { GeneralInfo = generalInfo, Contact = contactInfo, CompanyInfo = companyInfo }; //act Target.Invoking(a => a.CreateAppraiserUser(appraiser)).ShouldThrow<ArgumentException>(); }
public void Index_should_throw_exception_if_appraisal_company_admin_tries_to_access_wrong_company() { var companyAdminRole = new Role() { Id = (int)RoleType.CompanyAdminAndAppraiser }; _target.SecurityContext.CurrentUser.Returns(new User() { Id = 1, Roles = new Role[] { companyAdminRole } }); var companyInfo = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1 }; _appraiserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo); // act _target.Invoking(a => a.Index(5)).ShouldThrow<SecurityException>(); }
public void CreateAppraiserUser_should_create_user() { var company = new AppraisalCompanyDetail() { Branches = new List<AppraisalCompanyBranch>() }; AppraisalCompanyManager.GetAppraisalCompanyById(1).Returns(company); var generalInfo = new CreateUserGeneralInfoViewModel() { Email = "email", Password = "******", RoleType = RoleType.Appraiser }; IAppraiserUserRepository appUserRepository = Substitute.For<IAppraiserUserRepository>(); var _taskManager = Substitute.For<ITaskManager>(); ReferenceManager.GetRoleWithoutCache(RoleType.Appraiser).Returns(new Role() { Id = (int)RoleType.Appraiser }); AppraiserManager = new AppraiserManagement(Substitute.For<IUserRepository>(), appUserRepository, ReferenceManager, _taskManager, Substitute.For<IAscGovLicenseService>()); Target = new AppraiserUserService(UsersManager, AppraiserManager, ReferenceManager, AppraisalCompanyManager, StatusHistoryManager, FeeManager, LicenseManager, AppraiserAccessManager, CryptographicProvider, DocumentService, Substitute.For<IGeocodingDataService>()); var contactInfo = new AppraiserUserContactViewModel() { PhysicalAddress = new AddressViewModel() }; var companyInfo = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1 }; var appraiser = new AppraiserUserCreateViewModel() { GeneralInfo = generalInfo, Contact = contactInfo, CompanyInfo = companyInfo }; var serviceAreaRadiuses = new Dictionary<RefServiceAreaRadiuse, string>(); serviceAreaRadiuses.Add(new RefServiceAreaRadiuse() { ServiceAreaRadius = 1 }, "123"); ReferenceManager.GetServiceAreaRadiuses().Returns(serviceAreaRadiuses); //act Target.CreateAppraiserUser(appraiser); appUserRepository.Received().Add(Arg.Any<AppraiserUser>()); }
public AppraiserUserCompanyInfoViewModel GetAppraiserUserCompanyInfo(int companyId, int? branchId) { var company = _appraisalCompanyManagement.GetAppraisalCompanyById(companyId); if (company == null) return null; var result = new AppraiserUserCompanyInfoViewModel(); result.CompanyID = company.Id; result.CompanyStringID = company.CompanyId; result.CompanyName = company.CompanyName; if (company.Contact != null) result.CompanyAddress = _addressManager.GetAddressViewModel<NotRequiredAddressViewModel>(company.Contact.PhysicalAddress); else result.CompanyAddress = new NotRequiredAddressViewModel(); if (branchId.HasValue) { var branch = company.Branches.SingleOrDefault(e => e.Id == branchId); if (branch != null) { result.BranchID = branchId; result.BranchAddress = _addressManager.GetAddressViewModel<NotRequiredAddressViewModel>(branch.Address).GetDisplayView(); } } var branches = new List<AppraiserUserCompanyInfoBranchViewModel>(); foreach (var item in company.Branches) { var branch = new AppraiserUserCompanyInfoBranchViewModel(); branch.BranchID = item.Id; branch.BranchName = item.Name; if (item.Address != null) { branch.BranchState = item.Address.State; } branch.Status = item.Status; branches.Add(branch); } result.Branches = branches; return result; }
public ActionResult CompanyInfo(int companyId, int? branchId, RoleType? role, int? userId, bool? isOwnPage, string path) { var company = GetAppraiserUserCompanyInfo(companyId, branchId, role); if (company == null) { company = new AppraiserUserCompanyInfoViewModel(); // when security role is set but company name is not yet specified } if (branchId.HasValue && branchId != 0) { if (!company.Branches.Select(e => e.BranchID).Contains(branchId.Value)) { throw new ArgumentException(String.Format("Branch [Id: {0}] not found in Company [Id: {1}]", companyId, branchId), "branchId"); } } company.CompanyName = company.CompanyName; company.BranchID = branchId; company.Branches = company.Branches.Where(e => e.Status == AppraisalCompanyStatus.Active).ToList(); if (company.Branches.Any(e => !Constants.Text.NoSelection.Equals(e.BranchName))) { company.Branches.Insert(0, new AppraiserUserCompanyInfoBranchViewModel() { BranchID = 0, BranchName = Constants.Text.NoSelection }); } var isCurrentUserCompanyAdmin = IsCurrentUserCompanyAdmin(); company.IsCompanyAdmin = (role == RoleType.AppraisalCompanyAdmin || role == RoleType.CompanyAdminAndAppraiser); company.IsCompanyRequired = !isCurrentUserCompanyAdmin && company.IsCompanyAdmin.Value; company.EditUserId = userId.GetValueOrDefault(0); company.IsOwnPage = isOwnPage.GetValueOrDefault(false); if ((path.Contains(NameHelper.AppraiserUserAdd.Controller) && !path.Contains("appraisalCompanyId")) && !isCurrentUserCompanyAdmin) { company.CompanyNameState = CompanyNameState.Editable; } else if ((path.Contains(NameHelper.AppraiserProfile.Controller)) && (User.IsInRole(RoleType.DvsSuperAdmin.ToString()) || User.IsInRole(RoleType.DvsAdmin.ToString()))) { company.CompanyNameState = CompanyNameState.ChangeableEditMode; } else { company.CompanyNameState = CompanyNameState.Readonly; } return PartialView(Constants.Views.CompanyInfoPartial, company); }
public ActionResult UnassignAppraiserFromCompany(AppraiserUserCompanyInfoViewModel companyModel) { if (SecurityContext.CurrentUser.HasUserAnyRoles(RoleType.DvsAdmin, RoleType.DvsSuperAdmin) && !companyModel.IsCompanyAdmin.GetValueOrDefault(true)) { ModelState.Clear(); companyModel.CompanyID = 0; companyModel.BranchID = 0; _appraiserUserService.SaveAppraiserCompany(companyModel, User.Identity.Name); CommitProviderInstance.Commit(); } var viewModel = _appraiserUserService.GetAppraiserCompanyInfo(User.Identity.Name, companyModel.EditUserId); if (SecurityContext.CurrentUser.HasUserAnyRoles(RoleType.DvsAdmin, RoleType.DvsSuperAdmin)) { viewModel.NotificationMessage = Constants.Notifications.UserUnassigned; } TempData[_appraiserCompanyKey] = viewModel; return RedirectToStep(NameHelper.AppraiserProfile.Company, companyModel.EditUserId, companyModel.IsOwnPage); }
public void SaveAppraiserUser_should_redirect_to_Index_with_parameter_if_previous_url_is_AppraisalCompanuiesPipelineController() { var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null); var dvsAdminRole = Singletones.ReferenceManager.GetRole(RoleType.DvsAdmin); viewContext.HttpContext.User.IsInRole(dvsAdminRole.RoleType.ToString()).Returns(true); _target.CommitProviderInstance = Substitute.For<ICommitProvider>(); _target.SetFakeControllerContext(viewContext.HttpContext); _companyService.GetAppraisalCompanyDetails(Arg.Any<int>()).Returns(new AppraisalCompanyDetailsViewModel() { Status = AppraisalCompanyStatus.Applied }); var userModel = new AppraiserUserCreateViewModel() { GeneralInfo = new CreateUserGeneralInfoViewModel() { RoleType = RoleType.Appraiser }, PreviousUrl = NameHelper.AppraisalCompaniesPipeline.Controller, Contact = new AppraiserUserContactViewModel() { PhysicalAddress = new AddressViewModel() } }; int companyId = 10; var companyModel = new AppraiserUserCompanyInfoViewModel() { CompanyID = companyId }; _companyService.GetAppraiserUserCompanyInfo(Arg.Any<int>(), Arg.Any<int?>()).Returns(companyModel); // act var actual = _target.SaveAppraiserUser(userModel, companyModel, false); actual.Should().NotBeNull().And.BeOfType<RedirectToRouteResult>(); ((RedirectToRouteResult)actual).RouteValues["action"].Should().Be(NameHelper.AppraiserUserAdd.Index); ((RedirectToRouteResult)actual).RouteValues["appraisalCompanyId"].Should().Be(companyId); }
public void CompanyInfo_should_return_view_for_appraisal_company_admin() { var companyAdminRole = Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin); new User { Roles = new List<Role>(new[] { companyAdminRole }) }; var companyInfo = new AppraiserUserCompanyInfoViewModel { CompanyID = 1 }; AppraiserUserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo); var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); new GenericPrincipal(new GenericIdentity("someUser"), null); viewContext.HttpContext.User.IsInRole(companyAdminRole.RoleType.ToString()).Returns(true); ReferenceManager.GetRolesForAppraisers().Returns(new Dictionary<int, string> { { (int)RoleType.Appraiser, RoleType.Appraiser.ToString() } }); Target.SetFakeControllerContext(viewContext.HttpContext); // act var actual = Target.CompanyInfo(1, 0, RoleType.Appraiser, null, false, "string"); actual.Should().NotBeNull().And.BeOfType<PartialViewResult>(); var model = ((PartialViewResult)actual).Model as AppraiserUserCompanyInfoViewModel; model.Should().NotBeNull(); model.CompanyNameState.Should().Be(CompanyNameState.Readonly); model.IsCompanyRequired.Should().BeFalse(); }
public void SaveAppraiserUser_should_redirect_to_previous_url_if_redirect_flag_is_set() { var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null); var dvsAdminRole = Singletones.ReferenceManager.GetRole(RoleType.DvsAdmin); viewContext.HttpContext.User.IsInRole(dvsAdminRole.RoleType.ToString()).Returns(true); _companyService.GetAppraisalCompanyDetails(Arg.Any<int>()).Returns(new AppraisalCompanyDetailsViewModel() { Status = AppraisalCompanyStatus.Applied }); _target.CommitProviderInstance = Substitute.For<ICommitProvider>(); _target.SetFakeControllerContext(viewContext.HttpContext); string url = "someUrl"; var userModel = new AppraiserUserCreateViewModel() { GeneralInfo = new CreateUserGeneralInfoViewModel() { RoleType = RoleType.Appraiser }, Contact = new AppraiserUserContactViewModel() { PhysicalAddress = new AddressViewModel() }, PreviousUrl = url, }; var companyModel = new AppraiserUserCompanyInfoViewModel(); _companyService.GetAppraiserUserCompanyInfo(Arg.Any<int>(), Arg.Any<int?>()).Returns(companyModel); // act var actual = _target.SaveAppraiserUser(userModel, companyModel, true); actual.Should().NotBeNull().And.BeOfType<RedirectResult>(); ((RedirectResult)actual).Url.Should().Be(url); }
public void CompanyInfo_should_throw_exception_if_appraisal_company_admin_tries_to_access_another_company() { var companyAdminRole = Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin); new User() { Roles = new List<Role>(new Role[] { companyAdminRole }) }; var companyInfo = new AppraiserUserCompanyInfoViewModel { CompanyID = 1 }; AppraiserUserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo); var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); new GenericPrincipal(new GenericIdentity("someUser"), null); viewContext.HttpContext.User.IsInRole(companyAdminRole.RoleType.ToString()).Returns(true); ReferenceManager.GetRolesForAppraisers().Returns(new Dictionary<int, string> { { (int)RoleType.Appraiser, RoleType.Appraiser.ToString() } }); Target.SetFakeControllerContext(viewContext.HttpContext); // act Target.Invoking(a => a.CompanyInfo(2, 0, RoleType.Appraiser, null, false, "string")).ShouldThrow<SecurityException>(); }
public void SaveAppraiserUser_should_throw_exception_if_users_role_is_illegal() { var viewContext = new ViewContext(); viewContext.HttpContext = MockHttpContext.FakeHttpContext(); IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null); var dvsAdminRole = Singletones.ReferenceManager.GetRole(RoleType.DvsAdmin); viewContext.HttpContext.User.IsInRole(dvsAdminRole.RoleType.ToString()).Returns(true); _target.CommitProviderInstance = Substitute.For<ICommitProvider>(); _target.SetFakeControllerContext(viewContext.HttpContext); var addressViewModel = new AddressViewModel(); var appraiserUserContactViewModel = new AppraiserUserContactViewModel { PhysicalAddress = addressViewModel }; var userModel = new AppraiserUserCreateViewModel() { GeneralInfo = new CreateUserGeneralInfoViewModel() { RoleType = RoleType.DvsSuperAdmin }, Contact = appraiserUserContactViewModel, }; var companyModel = new AppraiserUserCompanyInfoViewModel(); // act _target.Invoking(a => a.SaveAppraiserUser(userModel, companyModel, true)).ShouldThrow<ArgumentException>(); }
public AppraiserUserCreateViewModel() { GeneralInfo = new CreateUserGeneralInfoViewModel(); Contact = new AppraiserUserContactViewModel(); CompanyInfo = new AppraiserUserCompanyInfoViewModel(); }
public void profile_save_company_should_change_branch_for_edited_user_if_current_user_has_permissions() { int savedBranchId = 123; int newBranchId = 321; AppraiserUserCompanyInfoViewModel model = new AppraiserUserCompanyInfoViewModel(); model.BranchID = newBranchId; AppraiserUserCompanyInfoViewModel savedData = new AppraiserUserCompanyInfoViewModel(); savedData.BranchID = savedBranchId; AppraiserUserService.GetAppraiserCompanyInfo(Arg.Any<string>(), Arg.Any<int?>(), Arg.Any<int?>()).Returns(savedData); model.IsCompanyAdmin = false; model.IsOwnPage = false; Target.SecurityContext = Substitute.For<ISecurityContext>(); Target.SecurityContext.CurrentUser.Returns(new User() { Id = 1, Roles = new Role[] { new Role() { Id = (int)RoleType.DvsAdmin } } }); //act Target.Company(model, "nextstep"); AppraiserUserService.Received().SaveAppraiserCompany(Arg.Is<AppraiserUserCompanyInfoViewModel>(c => c.BranchID == newBranchId), Arg.Any<string>()); }