public void It_Updates_The_Gaming_Group() { //--Arrange SetupUserGamingGroups(); var request = new GamingGroupEditRequest { PublicDescription = "Description", Website = "Website", GamingGroupName = "some gaming group name", GamingGroupId = _expectedGamingGroupId, Active = true }; //--Act autoMocker.ClassUnderTest.UpdatePublicGamingGroupDetails(request, currentUser); //--Assert autoMocker.Get <IDataContext>().FindById <GamingGroup>(currentUser.CurrentGamingGroupId); autoMocker.Get <IDataContext>().AssertWasCalled(x => x.Save(Arg <GamingGroup> .Matches( gamingGroup => gamingGroup.Name == request.GamingGroupName && gamingGroup.PublicDescription == request.PublicDescription && gamingGroup.PublicGamingGroupWebsite == request.Website.ToString() && gamingGroup.Active == request.Active), Arg <ApplicationUser> .Is.Same(currentUser))); }
public virtual ActionResult Edit(GamingGroupEditRequest request, ApplicationUser currentUser) { if (ModelState.IsValid) { this.gamingGroupSaver.UpdatePublicGamingGroupDetails(request, currentUser); return(RedirectToAction(MVC.GamingGroup.Index())); } return(this.Edit(request.GamingGroupId)); }
[UserContext(RequiresGamingGroup = false)] //--a user with only inactive gaming groups should be able to reactivate one public virtual ActionResult Edit(GamingGroupEditRequest request, ApplicationUser currentUser) { if (ModelState.IsValid) { _gamingGroupSaver.UpdatePublicGamingGroupDetails(request, currentUser); return(MakeRedirectResultToManageAccountPageGamingGroupsTab(AccountController.ManageMessageId.GamingGroupSaved)); } return(Edit(request.GamingGroupId, currentUser)); }
public void ItUpdatesGamingGroupPublicDetails() { var request = new GamingGroupEditRequest { PublicDescription = "Description", Website = "http://Website.com" }; var httpStatusCodeResult = autoMocker.ClassUnderTest.Edit(request, currentUser) as HttpStatusCodeResult; autoMocker.Get <IGamingGroupSaver>().AssertWasCalled(x => x.UpdatePublicGamingGroupDetails(request, currentUser)); }
public void It_Updates_Gaming_Group_Public_Details_And_Redirects_Back_To_Gaming_Group_Listing() { var expectedResult = new RedirectResult("some url"); autoMocker.ClassUnderTest.Expect(mock => mock.MakeRedirectResultToManageAccountPageGamingGroupsTab()) .Return(expectedResult); var request = new GamingGroupEditRequest(); var actualResult = autoMocker.ClassUnderTest.Edit(request, currentUser); autoMocker.Get <IGamingGroupSaver>().AssertWasCalled(x => x.UpdatePublicGamingGroupDetails(request, currentUser)); actualResult.ShouldBe(expectedResult); }
public GamingGroup UpdatePublicGamingGroupDetails(GamingGroupEditRequest request, ApplicationUser currentUser) { var gamingGroup = dataContext.FindById <GamingGroup>(request.GamingGroupId); gamingGroup.PublicGamingGroupWebsite = request.Website; gamingGroup.PublicDescription = request.PublicDescription; gamingGroup.Name = request.GamingGroupName; gamingGroup = dataContext.Save(gamingGroup, currentUser); dataContext.CommitAllChanges(); eventTracker.TrackGamingGroupUpdate(currentUser); return(gamingGroup); }
private void SwitchUsersCurrentGamingGroupIfNecessary(GamingGroupEditRequest request) { if (request.Active) { return; } var users = _dataContext.GetQueryable <ApplicationUser>() .Where(x => x.CurrentGamingGroupId == request.GamingGroupId) .ToList(); foreach (var user in users) { _gamingGroupContextSwitcher.EnsureContextIsValid(user); } }
public void It_Switches_The_Gaming_Group_Of_Each_User_Who_Had_Their_Current_Gaming_Group_Set_To_This_One() { //--arrange var expectedUser1 = new ApplicationUser { Id = "user id 1", CurrentGamingGroupId = _expectedGamingGroupId }; var expectedUser2 = new ApplicationUser { Id = "user id 2", CurrentGamingGroupId = _expectedGamingGroupId }; var usersWithThisAsCurrentGamingGroup = new List <ApplicationUser> { expectedUser1, expectedUser2, //--record that doesn't match the gaming group new ApplicationUser { CurrentGamingGroupId = -1 } }.AsQueryable(); autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <ApplicationUser>()).Return(usersWithThisAsCurrentGamingGroup); var request = new GamingGroupEditRequest { GamingGroupId = _expectedGamingGroupId, Active = false }; //--act autoMocker.ClassUnderTest.UpdatePublicGamingGroupDetails(request, currentUser); //--assert autoMocker.Get <IGamingGroupContextSwitcher>().AssertWasCalled(mock => mock.EnsureContextIsValid(expectedUser1)); autoMocker.Get <IGamingGroupContextSwitcher>().AssertWasCalled(mock => mock.EnsureContextIsValid(expectedUser2)); }