Exemple #1
0
        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());
        }