Exemplo n.º 1
0
		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));
		}
Exemplo n.º 2
0
		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);
		}
Exemplo n.º 3
0
		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>();
		}
Exemplo n.º 4
0
		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>();
		}
Exemplo n.º 5
0
		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>();
		}
Exemplo n.º 6
0
		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);
		}
Exemplo n.º 7
0
		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);
		}
Exemplo n.º 8
0
		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);

		}
Exemplo n.º 9
0
		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>();
		}
Exemplo n.º 10
0
		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>();
		}
Exemplo n.º 11
0
		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>());
		}
Exemplo n.º 12
0
		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;
		}
Exemplo n.º 13
0
		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);
		}
Exemplo n.º 14
0
		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);
		}
Exemplo n.º 15
0
		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);
		}
Exemplo n.º 16
0
		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();
		}
Exemplo n.º 17
0
		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);
		}
Exemplo n.º 18
0
		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>();
		}
Exemplo n.º 19
0
		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>();
		}
Exemplo n.º 20
0
		public AppraiserUserCreateViewModel()
		{
			GeneralInfo = new CreateUserGeneralInfoViewModel();
			Contact = new AppraiserUserContactViewModel();
			CompanyInfo = new AppraiserUserCompanyInfoViewModel();
		}
Exemplo n.º 21
0
		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>());
		}