public void GivenTypeIsPrivateHealthField_AndUserDoesntHaveAccessToAllFields_WhenIGenerateMapFieldsViewModel_ThenAPopulatedUploadWizardViewModelIsReturnedWithOnlyExpectedPrivateHealthFields() { var expectedPublicFields = Data.CustomFields.OrderBy(c => c.Name).OfType <PrivateHealthField>().ToList(); expectedPublicFields.Insert(0, new PrivateHealthField { Id = 0, Name = "Student Id" } ); var viewModel = new UploadWizardFileViewModel { NumberOfFields = 1, File = MockRepository.GenerateMock <HttpPostedFileBase>() }; viewModel.File.Expect(f => f.InputStream).Return(new MemoryStream()); IPermission permission = MockRepository.GenerateMock <IPermission>(); permission.Expect(p => p.GrantAccess(User)).Throw(new EntityAccessUnauthorizedException()); PermissionFactory.Current.Expect(m => m.Create("UploadCustomFieldData", Data.CustomFields.Last())).Return(permission); var model = Target.GenerateMapFieldsViewModel(viewModel, typeof(PrivateHealthField), User) as UploadWizardModel; Assert.IsNotNull(model); Assert.AreEqual(expectedPublicFields.Count - 1, model.CustomFields[0].CustomFields.Count()); }
public void GivenPermissionFailsGrantAccess_WhenTryGrantAccess_ThenReturnFalse() { EducationSecurityPrincipal user = CreateUserWithNoRoles(); IPermission permission = MockRepository.GenerateMock <IPermission>(); permission.Expect(p => p.GrantAccess(user)).Throw(new EntityAccessUnauthorizedException()); Assert.IsFalse(permission.TryGrantAccess(user)); }
public void GivenValidStudentId_AndCustomFieldPermissionDoesntAllowAccessToSomeFields_WhenGenerateStudentDetailViewModel_ThenModelHasExpectedCustomFields() { var expected = Data.Students.First().CustomFieldValues.Where(c => c.Id != 1); PermissionFactory.Current.Expect(m => m.Create("ViewStudentDetail", Data.Students.Single(s => s.Id == 1))).Return(MockRepository.GenerateMock <IViewStudentDetailPermission>()); IPermission permission = MockRepository.GenerateMock <IPermission>(); permission.Expect(p => p.GrantAccess(User)).Throw(new EntityAccessUnauthorizedException()); PermissionFactory.Current.Expect(m => m.Create("ViewStudentCustomFieldData", Data.Students.Single(s => s.Id == 1).CustomFieldValues.First().CustomField)).Return(permission); foreach (var field in Data.Students.Single(s => s.Id == 1).CustomFieldValues.Select(c => c.CustomField)) { if (field.Id != 1) { PermissionFactory.Current.Expect(m => m.Create("ViewStudentCustomFieldData", field)).Return(MockRepository.GenerateMock <IPermission>()); } } var result = Target.GenerateStudentDetailViewModel(User, 1); CollectionAssert.AreEqual(expected.Select(e => e.Value).ToList(), result.CustomData.Select(c => c.Value).ToList()); }