public void Create(EulaModel viewModel, EducationSecurityPrincipal user)
 {
     if (viewModel == null)
     {
         throw new ArgumentNullException("viewModel");
     }
     if (user == null)
     {
         throw new ArgumentNullException("user");
     }
     if (!user.IsInRole(SecurityRoles.DataAdmin))
     {
         throw new EntityAccessUnauthorizedException("user");
     }
     EulaAgreement agreement = new EulaAgreement
     {
         CreateTime = DateTime.Now,
         CreatingUser = user.Identity.User
     };
     viewModel.CopyTo(agreement);
     EulaAgreementRepository.Add(agreement);
     EulaAcceptance acceptance = new EulaAcceptance
     {
         EulaAgreement = agreement,
         CreatingUserId = user.Identity.User.Id,
         CreateTime = DateTime.Now
     };
     if (user.Identity.User.EulaAcceptances == null)
     {
         user.Identity.User.EulaAcceptances = new List<EulaAcceptance>();
     }
     user.Identity.User.EulaAcceptances.Add(acceptance);
     UserRepository.Update(user.Identity.User);
     RepositoryContainer.Save();
 }
示例#2
0
        public void GivenNullRedirect_WhenPostIndex_ThenRedirectToHome()
        {
            EulaModel viewModel = new EulaModel();

            var actual = Target.Index(viewModel, null) as RedirectToRouteResult;

            actual.AssertActionRedirection("Index", "Home");
        }
示例#3
0
        public void GivenViewModel_WhenPostIndex_ThenLogicManagerLogsViewModelForUser()
        {
            EulaModel expected = new EulaModel();

            Target.Index(expected, null);

            MockLogicManager.AssertWasCalled(m => m.Log(expected, User));
        }
示例#4
0
        public EulaModel GenerateEulaAdminModel()
        {
            EulaModel model = new EulaModel();
            var       eula  = FindLatestAgreement();

            model.CopyFrom(eula);
            return(model);
        }
        public void GivenInvalidModelState_WhenAdminPosts_ThenPartialViewHasExpectedViewModel()
        {
            Target.ModelState.AddModelError("key", "error");
            var expected = new EulaModel { Id = 1, EulaText = "blah" };

            var result = Target.Admin(expected) as PartialViewResult;

            result.AssertGetViewModel(expected);
        }
        public void GivenInvalidModelState_WhenAdminPosts_ThenPartivalViewIsReturned()
        {
            Target.ModelState.AddModelError("key", "error");
            var model = new EulaModel { Id = 1, EulaText = "blah" };

            var result = Target.Admin(model) as PartialViewResult;

            Assert.IsNotNull(result);
        }
 public ActionResult Index(EulaModel viewModel, string redirect)
 {
     LogicManager.Log(viewModel, (EducationSecurityPrincipal)User);
     if (redirect == null)
     {
         return(RedirectToAction("Index", "Home"));
     }
     return(Redirect(redirect));
 }
        public void GivenLogicManagerReturnsViewModel_WhenIndex_ThenViewResultContainsModel()
        {
            EulaModel expected = new EulaModel();
            MockLogicManager.Expect(m => m.GeneratePromptViewModel()).Return(expected);

            ViewResult result = Target.Index();

            result.AssertGetViewModel(expected);
        }
示例#9
0
        public void GivenRedirectUrl_WhenPostIndex_ThenRedirectToHome()
        {
            string    expected  = "whatever";
            EulaModel viewModel = new EulaModel();

            var actual = Target.Index(viewModel, expected) as RedirectResult;

            Assert.AreEqual(expected, actual.Url);
        }
 public ActionResult Index(EulaModel viewModel, string redirect)
 {
     LogicManager.Log(viewModel, (EducationSecurityPrincipal)User);
     if (redirect == null)
     {
         return RedirectToAction("Index", "Home");
     }
     return Redirect(redirect);
 }
 public ActionResult Admin(EulaModel viewModel)
 {
     if (ModelState.IsValid)
     {
         LogicManager.Create(viewModel, (EducationSecurityPrincipal)User);
         viewModel = LogicManager.GenerateEulaAdminModel();
         return(View(viewModel));
     }
     return(PartialView(viewModel));
 }
示例#12
0
        public void GivenValidModel_WhenAdminPosts_ThenLogicManagerCreates()
        {
            var model = new EulaModel {
                Id = 1, EulaText = "blah blah blah"
            };

            Target.Admin(model);

            MockLogicManager.AssertWasCalled(m => m.Create(model, User));
        }
示例#13
0
        public void GivenLogicManagerReturnsViewModel_WhenIndex_ThenViewResultContainsModel()
        {
            EulaModel expected = new EulaModel();

            MockLogicManager.Expect(m => m.GeneratePromptViewModel()).Return(expected);

            ViewResult result = Target.Index();

            result.AssertGetViewModel(expected);
        }
        public void GivenEulas_WhenGenerateEulaAdminModel_ThenExpectedModelReturned()
        {
            EulaModel expected = new EulaModel();
            expected.CopyFrom(Data.Eulas.OrderByDescending(e => e.CreateTime).First());

            var actual = Target.GenerateEulaAdminModel();

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.EulaText, actual.EulaText);
        }
 public ActionResult Admin(EulaModel viewModel)
 {
     if (ModelState.IsValid)
     {
         LogicManager.Create(viewModel, (EducationSecurityPrincipal)User);
         viewModel = LogicManager.GenerateEulaAdminModel();
         return View(viewModel);
     }
     return PartialView(viewModel);
 }
示例#16
0
        public void GivenMultipleEulaAgreements_WhenGeneratePromptViewModel_ThenReturnLatestAgreement()
        {
            EulaAgreement expected = Data.Eulas.OrderByDescending(e => e.CreateTime).First();

            EulaModel actual = Target.GeneratePromptViewModel();

            Assert.AreEqual(expected.CreateTime, actual.Audit.CreateTime);
            Assert.AreEqual(expected.CreatingUser.DisplayName, actual.Audit.CreatedBy);
            Assert.AreEqual(expected.EulaText, actual.EulaText);
            Assert.AreEqual(expected.Id, actual.Id);
        }
示例#17
0
        public void GivenEulas_WhenGenerateEulaAdminModel_ThenExpectedModelReturned()
        {
            EulaModel expected = new EulaModel();

            expected.CopyFrom(Data.Eulas.OrderByDescending(e => e.CreateTime).First());

            var actual = Target.GenerateEulaAdminModel();

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.EulaText, actual.EulaText);
        }
示例#18
0
        public void GivenInvalidModelState_WhenAdminPosts_ThenPartialViewHasExpectedViewModel()
        {
            Target.ModelState.AddModelError("key", "error");
            var expected = new EulaModel {
                Id = 1, EulaText = "blah"
            };

            var result = Target.Admin(expected) as PartialViewResult;

            result.AssertGetViewModel(expected);
        }
示例#19
0
        public void GivenInvalidModelState_WhenAdminPosts_ThenPartivalViewIsReturned()
        {
            Target.ModelState.AddModelError("key", "error");
            var model = new EulaModel {
                Id = 1, EulaText = "blah"
            };

            var result = Target.Admin(model) as PartialViewResult;

            Assert.IsNotNull(result);
        }
示例#20
0
        public void GivenUser_WhenGenerateEulaModelByUser_ThenEulaModelReturned()
        {
            TestData  data     = new TestData();
            EulaModel expected = new EulaModel();

            expected.CopyFrom(data.Users.First().EulaAcceptances.First().EulaAgreement);

            var actual = Target.GenerateEulaModelByUser(1);

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.EulaText, actual.EulaText);
        }
示例#21
0
        public void GivenViewModel_WhenLog_ThenContextSaves()
        {
            EulaModel viewModel = new EulaModel {
                Id = 1, EulaText = "blah blerg bleh", Audit = new AuditModel {
                    CreatedBy = User.Identity.User.DisplayName, CreateTime = DateTime.Now
                }
            };

            Target.Log(viewModel, User);

            Repositories.MockRepositoryContainer.AssertWasCalled(m => m.Save());
        }
示例#22
0
        public void GivenValidModel_WhenAdminPosts_ThenPageWithReturnedWithNewViewModel()
        {
            var model = new EulaModel {
                Id = 1, EulaText = "blah blah blah"
            };
            var expected = new EulaModel {
                Id = 2, EulaText = "blah blah blah"
            };

            MockLogicManager.Expect(m => m.GenerateEulaAdminModel()).Return(expected);

            var result = Target.Admin(model) as ViewResult;

            Assert.IsNotNull(result);
            result.AssertGetViewModel(expected);
        }
示例#23
0
        public void GivenValidViewModel_WhenCreate_ThenAddedEulaAgreementHasCreationAuditData()
        {
            EulaModel viewModel = new EulaModel {
                Id = 1, EulaText = "blah blah"
            };

            User.Identity.User.UserRoles.Add(new UserRole {
                Role = new Role {
                    Name = SecurityRoles.DataAdmin
                }
            });

            Target.Create(viewModel, User);

            Repositories.MockEulaAgreementRepository.AssertWasCalled(m => m.Add(Arg <EulaAgreement> .Matches(a => a.CreateTime.WithinTimeSpanOf(TimeSpan.FromSeconds(1), DateTime.Now) && a.CreatingUser == User.Identity.User)));
        }
示例#24
0
        public void GivenValidViewModel_WhenCreate_ThenAddedEulaAgreementHasStateFromViewModel()
        {
            EulaModel expectedState = new EulaModel {
                Id = 1, EulaText = "blah blah"
            };

            User.Identity.User.UserRoles.Add(new UserRole {
                Role = new Role {
                    Name = SecurityRoles.DataAdmin
                }
            });

            Target.Create(expectedState, User);

            Repositories.MockEulaAgreementRepository.AssertWasCalled(m => m.Add(Arg <EulaAgreement> .Matches(a => AssertPropertiesMatch(expectedState, a))));
        }
示例#25
0
        public void GivenValidViewModel_WhenCreate_ThenChangesSaved()
        {
            EulaModel viewModel = new EulaModel {
                Id = 1, EulaText = "blah blah blah", Audit = new AuditModel {
                    CreatedBy = User.Identity.User.DisplayName, CreateTime = DateTime.Now
                }
            };

            User.Identity.User.UserRoles.Add(new UserRole {
                Role = new Role {
                    Name = SecurityRoles.DataAdmin
                }
            });

            Target.Create(viewModel, User);

            Repositories.MockRepositoryContainer.AssertWasCalled(m => m.Save());
        }
示例#26
0
        public EulaModel GenerateEulaModelByUser(int userId)
        {
            User user = UserRepository.Items.Include("EulaAcceptances.EulaAgreement.CreatingUser").SingleOrDefault(u => u.Id == userId);

            if (user == null)
            {
                throw new EntityNotFoundException("user");
            }
            EulaAcceptance acceptance = user.EulaAcceptances.OrderByDescending(e => e.CreateTime).FirstOrDefault();

            if (acceptance == null)
            {
                throw new EntityNotFoundException("acceptance");
            }
            EulaModel model = new EulaModel();

            model.CopyFrom(acceptance.EulaAgreement);
            return(model);
        }
示例#27
0
        public void Log(EulaModel viewModel, EducationSecurityPrincipal user)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException("viewModel");
            }
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            EulaAcceptance acceptance = new EulaAcceptance
            {
                EulaAgreementId = viewModel.Id,
                CreatingUserId  = user.Identity.User.Id,
                CreateTime      = DateTime.Now
            };

            user.Identity.User.EulaAcceptances.Add(acceptance);
            UserRepository.Update(user.Identity.User);
            RepositoryContainer.Save();
        }
示例#28
0
        public void Create(EulaModel viewModel, EducationSecurityPrincipal user)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException("viewModel");
            }
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (!user.IsInRole(SecurityRoles.DataAdmin))
            {
                throw new EntityAccessUnauthorizedException("user");
            }
            EulaAgreement agreement = new EulaAgreement
            {
                CreateTime   = DateTime.Now,
                CreatingUser = user.Identity.User
            };

            viewModel.CopyTo(agreement);
            EulaAgreementRepository.Add(agreement);
            EulaAcceptance acceptance = new EulaAcceptance
            {
                EulaAgreement  = agreement,
                CreatingUserId = user.Identity.User.Id,
                CreateTime     = DateTime.Now
            };

            if (user.Identity.User.EulaAcceptances == null)
            {
                user.Identity.User.EulaAcceptances = new List <EulaAcceptance>();
            }
            user.Identity.User.EulaAcceptances.Add(acceptance);
            UserRepository.Update(user.Identity.User);
            RepositoryContainer.Save();
        }
        public void GivenUser_WhenGenerateEulaModelByUser_ThenEulaModelReturned()
        {
            TestData data = new TestData();
            EulaModel expected = new EulaModel();
            expected.CopyFrom(data.Users.First().EulaAcceptances.First().EulaAgreement);

            var actual = Target.GenerateEulaModelByUser(1);

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.EulaText, actual.EulaText);
        }
 public EulaModel GenerateEulaModelByUser(int userId)
 {
     User user = UserRepository.Items.Include("EulaAcceptances.EulaAgreement.CreatingUser").SingleOrDefault(u => u.Id == userId);
     if (user == null)
     {
         throw new EntityNotFoundException("user");
     }
     EulaAcceptance acceptance = user.EulaAcceptances.OrderByDescending(e => e.CreateTime).FirstOrDefault();
     if (acceptance == null)
     {
         throw new EntityNotFoundException("acceptance");
     }
     EulaModel model = new EulaModel();
     model.CopyFrom(acceptance.EulaAgreement);
     return model;
 }
 public EulaModel GenerateEulaAdminModel()
 {
     EulaModel model = new EulaModel();
     var eula = FindLatestAgreement();
     model.CopyFrom(eula);
     return model;
 }
示例#32
0
 private static bool AssertPropertiesMatch(EulaModel expectedState, EulaAgreement actualState)
 {
     Assert.IsNotNull(actualState);
     Assert.AreEqual(expectedState.EulaText, actualState.EulaText);
     return(true);
 }
 public void Log(EulaModel viewModel, EducationSecurityPrincipal user)
 {
     if (viewModel == null)
     {
         throw new ArgumentNullException("viewModel");
     }
     if (user == null)
     {
         throw new ArgumentNullException("user");
     }
     EulaAcceptance acceptance = new EulaAcceptance
     {
         EulaAgreementId = viewModel.Id,
         CreatingUserId = user.Identity.User.Id,
         CreateTime = DateTime.Now
     };
     user.Identity.User.EulaAcceptances.Add(acceptance);
     UserRepository.Update(user.Identity.User);
     RepositoryContainer.Save();
 }
        public void GivenNullRedirect_WhenPostIndex_ThenRedirectToHome()
        {
            EulaModel viewModel = new EulaModel();

            var actual = Target.Index(viewModel, null) as RedirectToRouteResult;

            actual.AssertActionRedirection("Index", "Home");
        }
 private static bool AssertPropertiesMatch(EulaModel expectedState, EulaAgreement actualState)
 {
     Assert.IsNotNull(actualState);
     Assert.AreEqual(expectedState.EulaText, actualState.EulaText);
     return true;
 }
        public void GivenValidViewModel_WhenCreate_ThenUserRepositoryUpdates()
        {
            EulaModel viewModel = new EulaModel { Id = 1, EulaText = "blah blerg bleh", Audit = new AuditModel { CreatedBy = User.Identity.User.DisplayName, CreateTime = DateTime.Now } };
            User.Identity.User.UserRoles.Add(new UserRole { Role = new Role { Name = SecurityRoles.DataAdmin } });

            Target.Create(viewModel, User);

            Repositories.MockUserRepository.AssertWasCalled(m => m.Update(User.Identity.User));
        }
        public void GivenViewModel_WhenPostIndex_ThenLogicManagerLogsViewModelForUser()
        {
            EulaModel expected = new EulaModel();

            Target.Index(expected, null);

            MockLogicManager.AssertWasCalled(m => m.Log(expected, User));
        }
示例#38
0
        public void WhenGeneratePromptViewModel_ThenReturnInstance()
        {
            EulaModel actual = Target.GeneratePromptViewModel();

            Assert.IsNotNull(actual);
        }
        public void GivenValidModel_WhenAdminPosts_ThenLogicManagerCreates()
        {
            var model = new EulaModel { Id = 1, EulaText = "blah blah blah" };

            Target.Admin(model);

            MockLogicManager.AssertWasCalled(m => m.Create(model, User));
        }
        public void GivenRedirectUrl_WhenPostIndex_ThenRedirectToHome()
        {
            string expected = "whatever";
            EulaModel viewModel = new EulaModel();

            var actual = Target.Index(viewModel, expected) as RedirectResult;

            Assert.AreEqual(expected, actual.Url);
        }
        public void GivenValidViewModel_WhenCreate_ThenAddedEulaAgreementHasCreationAuditData()
        {
            EulaModel viewModel = new EulaModel { Id = 1, EulaText = "blah blah" };
            User.Identity.User.UserRoles.Add(new UserRole { Role = new Role { Name = SecurityRoles.DataAdmin } });

            Target.Create(viewModel, User);

            Repositories.MockEulaAgreementRepository.AssertWasCalled(m => m.Add(Arg<EulaAgreement>.Matches(a => a.CreateTime.WithinTimeSpanOf(TimeSpan.FromSeconds(1), DateTime.Now) && a.CreatingUser == User.Identity.User)));
        }
        public void GivenValidViewModel_WhenCreate_ThenAddedEulaAgreementHasStateFromViewModel()
        {
            EulaModel expectedState = new EulaModel { Id = 1, EulaText = "blah blah" };
            User.Identity.User.UserRoles.Add(new UserRole { Role = new Role { Name = SecurityRoles.DataAdmin } });

            Target.Create(expectedState, User);

            Repositories.MockEulaAgreementRepository.AssertWasCalled(m => m.Add(Arg<EulaAgreement>.Matches(a => AssertPropertiesMatch(expectedState, a))));
        }
 public void InitializeTest()
 {
     Target = new EulaModel();
     TestData = new TestData();
 }
        public void GivenViewModel_WhenLog_ThenRepositoryUpdates()
        {
            EulaModel viewModel = new EulaModel { Id = 1, EulaText = "blah blerg bleh", Audit = new AuditModel { CreatedBy = User.Identity.User.DisplayName, CreateTime = DateTime.Now } };

            Target.Log(viewModel, User);

            Repositories.MockUserRepository.AssertWasCalled(m => m.Update(User.Identity.User));
        }
        public ViewResult Admin()
        {
            EulaModel model = LogicManager.GenerateEulaAdminModel();

            return(View(model));
        }
        public void GivenValidModel_WhenAdminPosts_ThenPageWithReturnedWithNewViewModel()
        {
            var model = new EulaModel { Id = 1, EulaText = "blah blah blah" };
            var expected = new EulaModel { Id = 2, EulaText = "blah blah blah" };
            MockLogicManager.Expect(m => m.GenerateEulaAdminModel()).Return(expected);

            var result = Target.Admin(model) as ViewResult;

            Assert.IsNotNull(result);
            result.AssertGetViewModel(expected);
        }
        public ViewResult Index()
        {
            EulaModel viewModel = LogicManager.GeneratePromptViewModel();

            return(View(viewModel));
        }