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 GivenModelStateErrors_WhenUploadWizardConfirmed_ThenViewResultWithTheFirstModelReturned() { UploadWizardFileViewModel model = new UploadWizardFileViewModel(); Target.ModelState.AddModelError("blah", "blerg"); var result = Target.UploadWizardConfirmed(new UploadWizardFileViewModel()) as ViewResult; result.AssertGetViewModel<UploadWizardFileViewModel>(); }
public void GivenNoModelStateErrors_WhenUploadWizardConfirmed_ThenAViewResultIsReturned() { UploadWizardFileViewModel model = new UploadWizardFileViewModel(); MockLogicManager.Expect(m => m.GenerateMapFieldsViewModel(model, typeof(PrivateHealthField), User)).Return(new UploadWizardModel()); var result = Target.UploadWizardConfirmed(model) as ViewResult; Assert.IsNotNull(result); result.AssertGetViewModel<UploadWizardModel>(); }
public UploadWizardModel GenerateMapFieldsViewModel(UploadWizardFileViewModel model, Type t, EducationSecurityPrincipal user) { if (model == null) { throw new ArgumentNullException("model"); } var blobAddress = DateTime.Now.Ticks + model.File.FileName; UploadFileToBlobStorage(blobAddress, model.File.InputStream); model.BlobAddress = blobAddress; model.CustomFields = CreateCustomFieldSelectViewModelsToMap(model.NumberOfFields, t, user); return model; }
public void GivenTypeIsPublicField_WhenIGenerateMapFieldsViewModel_ThenAPopulatedUploadWizardViewModelIsReturnedWithOnlyPublicFields() { var expectedPublicFields = Data.CustomFields.OrderBy(c => c.Name).OfType<PublicField>().ToList(); expectedPublicFields.Insert(0, new PublicField { Id = 0, Name = "Student Id" } ); var viewModel = new UploadWizardFileViewModel { NumberOfFields = 1, File = MockRepository.GenerateMock<HttpPostedFileBase>() }; viewModel.File.Expect(f => f.InputStream).Return(new MemoryStream()); foreach (var field in Data.CustomFields.OfType<PublicField>()) { PermissionFactory.Current.Expect(m => m.Create("UploadCustomFieldData", field)).Return(MockRepository.GenerateMock<IPermission>()); } var model = Target.GenerateMapFieldsViewModel(viewModel, typeof(PublicField), User) as UploadWizardModel; Assert.IsNotNull(model); Assert.AreEqual(expectedPublicFields.Count, model.CustomFields[0].CustomFields.Count()); }