private void EditScheduledOffering(StudentServiceOfferingScheduleModel viewModel, StudentAssignedOffering existing, EducationSecurityPrincipal user)
 {
     existing.LastModifyingUser = user.Identity.User;
     existing.LastModifyTime    = DateTime.Now;
     viewModel.CopyTo(existing);
     StudentAssignedOfferingRepository.Update(existing);
 }
        public void GivenModelHasAuditData_WhenCopyFrom_ThenModelStateSet()
        {
            StudentAssignedOffering expectedState = new StudentAssignedOffering
            {
                ServiceOffering = new ServiceOffering
                {
                    Provider = new Provider { Name = "provider name" },
                    ServiceType = new ServiceType { Name = "service type name" },
                    Program = new Program { Name = "program name" }
                },
                CreateTime = new DateTime(2005, 4, 30),
                CreatingUser = new User { DisplayName = "fredBob" },
                LastModifyTime = new DateTime(2010, 5, 13),
                LastModifyingUser = new User { DisplayName = "jimGeorge" }
            };
            StudentServiceOfferingScheduleModel target = new StudentServiceOfferingScheduleModel();

            target.CopyFrom(expectedState);

            AuditModel actualState = target.Audit;
            Assert.AreEqual(expectedState.CreateTime, actualState.CreateTime);
            Assert.AreEqual(expectedState.CreatingUser.DisplayName, actualState.CreatedBy);
            Assert.AreEqual(expectedState.LastModifyTime, actualState.LastModifyTime);
            Assert.AreEqual(expectedState.LastModifyingUser.DisplayName, actualState.LastModifiedBy);
        }
Ejemplo n.º 3
0
 private static void AssertAssignedOffering(StudentServiceOfferingScheduleModel expected, StudentAssignedOffering actual)
 {
     Assert.IsNotNull(actual);
     Assert.AreEqual(0, actual.Id); //Since we are adding the Id will always be 0
     Assert.AreEqual(expected.EndDate, actual.EndDate);
     Assert.AreEqual(expected.Notes, actual.Notes);
     Assert.AreEqual(expected.StartDate, actual.StartDate);
 }
        public void GivenValidAssignedServiceOfferingId_AndValidStudentId_WhenIEditScheduledServiceOffering_ThenViewModelReturned()
        {
            StudentServiceOfferingScheduleModel expected = new StudentServiceOfferingScheduleModel();
            MockLogicManager.Expect(m => m.GenerateEditViewModel(User, 1)).Return(expected);

            PartialViewResult result = Target.EditScheduledOffering(1) as PartialViewResult;

            result.AssertGetViewModel(expected);
        }
        public void GivenInactiveId_WhenEdit_ThenThrowException()
        {
            int inactiveId = Data.StudentAssignedOfferings.Single(a => !a.IsActive).Id;
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = inactiveId
            };

            Target.ExpectException<EntityNotFoundException>(() => Target.Edit(User, viewModel));
        }
Ejemplo n.º 6
0
        public void GivenInactiveId_WhenEdit_ThenThrowException()
        {
            int inactiveId = Data.StudentAssignedOfferings.Single(a => !a.IsActive).Id;
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = inactiveId
            };

            Target.ExpectException <EntityNotFoundException>(() => Target.Edit(User, viewModel));
        }
Ejemplo n.º 7
0
        public void GivenValidAssignedServiceOfferingId_AndValidStudentId_WhenIEditScheduledServiceOffering_ThenViewModelReturned()
        {
            StudentServiceOfferingScheduleModel expected = new StudentServiceOfferingScheduleModel();

            MockLogicManager.Expect(m => m.GenerateEditViewModel(User, 1)).Return(expected);

            PartialViewResult result = Target.EditScheduledOffering(1) as PartialViewResult;

            result.AssertGetViewModel(expected);
        }
Ejemplo n.º 8
0
        public void GivenValidAssignedServiceOfferingId_WhenGenerateEditViewModel_ThenViewModelReturnedWithAssignedOfferingState()
        {
            StudentAssignedOffering expectedState = Data.StudentAssignedOfferings[0];
            int expectedStudentId = expectedState.StudentId;

            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", expectedState)).Return(MockRepository.GenerateMock <IPermission>());

            StudentServiceOfferingScheduleModel actual = Target.GenerateEditViewModel(User, expectedState.Id);

            AssertModelState(expectedState, expectedStudentId, actual);
        }
Ejemplo n.º 9
0
        private void AssertAssignedOffering(StudentServiceOfferingScheduleModel viewModel, List <StudentAssignedOffering> added)
        {
            var assignedOffering = added.Single();

            Repositories.MockStudentAssignedOfferingRepository.AssertWasNotCalled(m => m.Update(null), options => options.IgnoreArguments());
            Repositories.MockStudentAssignedOfferingRepository.AssertWasCalled(m => m.Add(assignedOffering));
            Repositories.MockRepositoryContainer.AssertWasCalled(m => m.Save());
            Assert.AreEqual(viewModel.EndDate, assignedOffering.EndDate);
            Assert.AreEqual(viewModel.Notes, assignedOffering.Notes);
            Assert.AreEqual(viewModel.StartDate, assignedOffering.StartDate);
        }
Ejemplo n.º 10
0
        public void GivenValidUser_WhenEdit_ThenAttemptGrantAccess()
        {
            StudentAssignedOffering             toEdit    = Data.StudentAssignedOfferings[0];
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = toEdit.Id
            };
            IPermission permission = MockRepository.GenerateMock <IPermission>();

            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", toEdit)).Return(permission);

            Target.Edit(User, viewModel);

            permission.AssertWasCalled(p => p.GrantAccess(User));
        }
Ejemplo n.º 11
0
        public void GivenValidViewModel_WhenEdit_ThenAttemptGrantAccess()
        {
            StudentAssignedOffering             toEdit    = Data.StudentAssignedOfferings[0];
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = toEdit.Id
            };

            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", toEdit)).Return(MockRepository.GenerateMock <IPermission>());

            Target.Edit(User, viewModel);

            Assert.IsTrue(toEdit.LastModifyTime.Value.WithinTimeSpanOf(TimeSpan.FromSeconds(1), DateTime.Now));
            Assert.AreEqual(User.Identity.User, toEdit.LastModifyingUser);
        }
Ejemplo n.º 12
0
        public void GivenOnlyHaveOneStudentAssignedOffering_WhenEdit_ThenItIsUpdated()
        {
            StudentAssignedOffering             toEdit    = Data.StudentAssignedOfferings[4];
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id      = toEdit.Id,
                EndDate = DateTime.Now
            };

            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", toEdit)).Return(MockRepository.GenerateMock <IPermission>());

            Target.Edit(User, viewModel);

            Repositories.MockStudentAssignedOfferingRepository.AssertWasCalled(a => a.Update(toEdit));
            Repositories.MockRepositoryContainer.AssertWasCalled(a => a.Save());
        }
        public void Edit(EducationSecurityPrincipal user, StudentServiceOfferingScheduleModel viewModel)
        {
            var existing = StudentAssignedOfferingRepository.Items.
                           Include(s => s.ServiceOffering.ServiceType).
                           SingleOrDefault(a => a.Id == viewModel.Id);

            if (existing == null || !existing.IsActive)
            {
                throw new EntityNotFoundException("Assigned offering not found");
            }
            IPermission permission = PermissionFactory.Current.Create("EditScheduledOffering", existing);

            permission.GrantAccess(user);
            EditScheduledOffering(viewModel, existing, user);
            RepositoryContainer.Save();
        }
Ejemplo n.º 14
0
        public void GivenStudentAssignedOfferingIsActive_WhenGenerateEditViewModel_ThenAuditDataPopulated()
        {
            int entityId;

            using (EducationDataContext setupContext = new EducationDataContext())
            {
                StudentAssignedOffering entity = setupContext.StudentAssignedOfferings.Single(a => a.LastModifyingUser != null);
                entity.IsActive = true;
                setupContext.SaveChanges();
                entityId = entity.Id;
            }

            StudentServiceOfferingScheduleModel actual = Target.GenerateEditViewModel(User, entityId);

            Assert.IsNotNull(actual.Audit.CreatedBy);
            Assert.AreNotEqual(DateTime.MinValue, actual.Audit.CreateTime);
            Assert.IsNotNull(actual.Audit.LastModifiedBy);
            Assert.IsTrue(actual.Audit.LastModifyTime.HasValue);
        }
        public void GivenModelNotModified_WhenCopyFrom_ThenModelStatelastModifyValuesNull()
        {
            StudentAssignedOffering expectedState = new StudentAssignedOffering
            {
                ServiceOffering = new ServiceOffering
                {
                    Provider = new Provider { Name = "provider name" },
                    ServiceType = new ServiceType { Name = "service type name" },
                    Program = new Program { Name = "program name" }
                },
                CreateTime = new DateTime(2005, 4, 30),
                CreatingUser = new User { DisplayName = "fredBob" }
            };
            StudentServiceOfferingScheduleModel target = new StudentServiceOfferingScheduleModel();

            target.CopyFrom(expectedState);

            Assert.IsNull(target.Audit.LastModifiedBy);
            Assert.IsFalse(target.Audit.LastModifyTime.HasValue);
        }
        public StudentServiceOfferingScheduleModel GenerateEditViewModel(EducationSecurityPrincipal user, int scheduledOfferingId)
        {
            StudentAssignedOffering assignment = StudentAssignedOfferingRepository.Items.
                                                 Include(a => a.ServiceOffering.ServiceType).
                                                 Include(a => a.ServiceOffering.Provider).
                                                 Include(a => a.ServiceOffering.Program).
                                                 Include(a => a.CreatingUser).
                                                 Include(a => a.LastModifyingUser).
                                                 SingleOrDefault(a => a.Id == scheduledOfferingId);

            if (assignment == null || !assignment.IsActive)
            {
                throw new EntityNotFoundException("Scheduled Service Offering does not exist.");
            }
            IPermission permission = PermissionFactory.Current.Create("EditScheduledOffering", assignment);

            permission.GrantAccess(user);
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel();

            viewModel.CopyFrom(assignment);
            return(viewModel);
        }
Ejemplo n.º 17
0
 private static void AssertModelState(StudentAssignedOffering expectedState, int expectedStudentId, StudentServiceOfferingScheduleModel actual)
 {
     Assert.AreEqual(expectedState.Id, actual.Id);
     Assert.AreEqual(expectedState.EndDate, actual.EndDate);
     Assert.AreEqual(expectedState.Notes, actual.Notes);
     Assert.AreEqual(expectedState.StartDate, actual.StartDate);
 }
        public void GivenOnlyHaveOneStudentAssignedOffering_WhenEdit_ThenItIsUpdated()
        {
            StudentAssignedOffering toEdit = Data.StudentAssignedOfferings[4];
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = toEdit.Id,
                EndDate = DateTime.Now
            };
            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", toEdit)).Return(MockRepository.GenerateMock<IPermission>());

            Target.Edit(User, viewModel);

            Repositories.MockStudentAssignedOfferingRepository.AssertWasCalled(a => a.Update(toEdit));
            Repositories.MockRepositoryContainer.AssertWasCalled(a => a.Save());
        }
        public void GivenValidViewModel_WhenEdit_ThenAttemptGrantAccess()
        {
            StudentAssignedOffering toEdit = Data.StudentAssignedOfferings[0];
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = toEdit.Id
            };
            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", toEdit)).Return(MockRepository.GenerateMock<IPermission>());

            Target.Edit(User, viewModel);

            Assert.IsTrue(toEdit.LastModifyTime.Value.WithinTimeSpanOf(TimeSpan.FromSeconds(1), DateTime.Now));
            Assert.AreEqual(User.Identity.User, toEdit.LastModifyingUser);
        }
        public void GivenValidUser_WhenEdit_ThenAttemptGrantAccess()
        {
            StudentAssignedOffering toEdit = Data.StudentAssignedOfferings[0];
            StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel
            {
                Id = toEdit.Id
            };
            IPermission permission = MockRepository.GenerateMock<IPermission>();
            PermissionFactory.Current.Expect(m => m.Create("EditScheduledOffering", toEdit)).Return(permission);

            Target.Edit(User, viewModel);

            permission.AssertWasCalled(p => p.GrantAccess(User));
        }
 private static void AssertModelState(StudentAssignedOffering expectedState, int expectedStudentId, StudentServiceOfferingScheduleModel actual)
 {
     Assert.AreEqual(expectedState.Id, actual.Id);
     Assert.AreEqual(expectedState.EndDate, actual.EndDate);
     Assert.AreEqual(expectedState.Notes, actual.Notes);
     Assert.AreEqual(expectedState.StartDate, actual.StartDate);
 }
 private static void AssertAssignedOffering(StudentServiceOfferingScheduleModel expected, StudentAssignedOffering actual)
 {
     Assert.IsNotNull(actual);
     Assert.AreEqual(0, actual.Id); //Since we are adding the Id will always be 0
     Assert.AreEqual(expected.EndDate, actual.EndDate);
     Assert.AreEqual(expected.Notes, actual.Notes);
     Assert.AreEqual(expected.StartDate, actual.StartDate);
 }
 public void Edit(EducationSecurityPrincipal user, StudentServiceOfferingScheduleModel viewModel)
 {
     var existing = StudentAssignedOfferingRepository.Items.
                    Include(s => s.ServiceOffering.ServiceType).
                    SingleOrDefault(a => a.Id == viewModel.Id);
     if (existing == null || !existing.IsActive)
     {
         throw new EntityNotFoundException("Assigned offering not found");
     }
     IPermission permission = PermissionFactory.Current.Create("EditScheduledOffering", existing);
     permission.GrantAccess(user);
     EditScheduledOffering(viewModel, existing, user);
     RepositoryContainer.Save();
 }
        public void GivenValidStudentAssignedOffering_WhenCopyFrom_ThenViewModelHasModelData()
        {
            StudentServiceOfferingScheduleModel target = new StudentServiceOfferingScheduleModel();
            StudentAssignedOffering offering = new StudentAssignedOffering
            {
                Id = 1,
                StartDate = DateTime.Now,
                EndDate = DateTime.Now.AddDays(1),
                Notes = "blah",
                ServiceOffering = new ServiceOffering
                {
                    Provider = new Provider(),
                    ServiceType = new ServiceType(),
                    Program = new Program()
                },
                CreatingUser = new User()
            };

            target.CopyFrom(offering);

            Assert.AreEqual(target.Id, offering.Id);
            Assert.AreEqual(target.StartDate, offering.StartDate);
            Assert.AreEqual(target.EndDate, offering.EndDate);
            Assert.AreEqual(target.Notes, offering.Notes);
        }
 public ActionResult EditScheduledOffering(StudentServiceOfferingScheduleModel viewModel)
 {
     LogicManager.Edit((EducationSecurityPrincipal)User, viewModel);
     return Json(true);
 }
 public StudentServiceOfferingScheduleModel GenerateEditViewModel(EducationSecurityPrincipal user, int scheduledOfferingId)
 {
     StudentAssignedOffering assignment = StudentAssignedOfferingRepository.Items.
                                             Include(a => a.ServiceOffering.ServiceType).
                                             Include(a => a.ServiceOffering.Provider).
                                             Include(a => a.ServiceOffering.Program).
                                             Include(a => a.CreatingUser).
                                             Include(a => a.LastModifyingUser).
                                             SingleOrDefault(a => a.Id == scheduledOfferingId);
     if (assignment == null || !assignment.IsActive)
     {
         throw new EntityNotFoundException("Scheduled Service Offering does not exist.");
     }
     IPermission permission = PermissionFactory.Current.Create("EditScheduledOffering", assignment);
     permission.GrantAccess(user);
     StudentServiceOfferingScheduleModel viewModel = new StudentServiceOfferingScheduleModel();
     viewModel.CopyFrom(assignment);
     return viewModel;
 }
        public void GivenNullStudentAssignedOffering_WhenCopyTo_ThenThrowException()
        {
            StudentServiceOfferingScheduleModel target = new StudentServiceOfferingScheduleModel();

            TestExtensions.ExpectException<ArgumentNullException>(() => target.CopyTo(null));
        }
 private void EditScheduledOffering(StudentServiceOfferingScheduleModel viewModel, StudentAssignedOffering existing, EducationSecurityPrincipal user)
 {
     existing.LastModifyingUser = user.Identity.User;
     existing.LastModifyTime = DateTime.Now;
     viewModel.CopyTo(existing);
     StudentAssignedOfferingRepository.Update(existing);
 }
        public void GivenValidStudentAssignedOffering_WhenCopyTo_ThenModelHasViewModelData()
        {
            StudentServiceOfferingScheduleModel target = new StudentServiceOfferingScheduleModel { Id = 1, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(1), Notes = "blah" };
            StudentAssignedOffering actual = new StudentAssignedOffering();

            target.CopyTo(actual);

            Assert.AreEqual(target.StartDate, actual.StartDate);
            Assert.AreEqual(target.EndDate, actual.EndDate);
            Assert.AreEqual(target.Notes, actual.Notes);
        }
Ejemplo n.º 30
0
 public ActionResult EditScheduledOffering(StudentServiceOfferingScheduleModel viewModel)
 {
     LogicManager.Edit((EducationSecurityPrincipal)User, viewModel);
     return(Json(true));
 }
 private void AssertAssignedOffering(StudentServiceOfferingScheduleModel viewModel, List<StudentAssignedOffering> added)
 {
     var assignedOffering = added.Single();
     Repositories.MockStudentAssignedOfferingRepository.AssertWasNotCalled(m => m.Update(null), options => options.IgnoreArguments());
     Repositories.MockStudentAssignedOfferingRepository.AssertWasCalled(m => m.Add(assignedOffering));
     Repositories.MockRepositoryContainer.AssertWasCalled(m => m.Save());
     Assert.AreEqual(viewModel.EndDate, assignedOffering.EndDate);
     Assert.AreEqual(viewModel.Notes, assignedOffering.Notes);
     Assert.AreEqual(viewModel.StartDate, assignedOffering.StartDate);
 }
        public void GivenValidStudentAssignedOffering_WhenCopyFrom_ThenViewModelHasName()
        {
            StudentServiceOfferingScheduleModel target = new StudentServiceOfferingScheduleModel();
            StudentAssignedOffering offering = new StudentAssignedOffering
            {
                ServiceOffering = new ServiceOffering
                {
                    Provider = new Provider { Name = "provider name" },
                    ServiceType = new ServiceType { Name = "service type name" },
                    Program = new Program { Name = "program name" }
                },
                CreatingUser = new User()
            };

            target.CopyFrom(offering);

            Assert.AreEqual(target.Name, offering.ServiceOffering.Name);
        }
Ejemplo n.º 33
0
        public ActionResult EditScheduledOffering(int id)
        {
            StudentServiceOfferingScheduleModel viewModel = LogicManager.GenerateEditViewModel((EducationSecurityPrincipal)User, id);

            return(PartialView(viewModel));
        }