public void Index_returns_ApproveMember_ModelsBuilder_model() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); var result = controller.Index(new ContentModel(_currentPage.Object)); Assert.IsType <ApproveMember>(((ViewResult)result).Model); } }
public void Member_is_looked_up_based_on_the_id_in_the_token_in_the_querystring() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); var result = controller.Index(new ContentModel(_currentPage.Object)); _tokenReader.Verify(x => x.ExtractId(_token), Times.Once); MemberService.Verify(x => x.GetById(MEMBER.Object.Id), Times.Once); } }
public void Index_sets_name_and_description_from_content() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); var result = controller.Index(new ContentModel(_currentPage.Object)); var meta = ((IHasViewMetadata)((ViewResult)result).Model).Metadata; Assert.Equal(CURRENT_PAGE_NAME, meta.PageTitle); Assert.Equal(CURRENT_PAGE_DESCRIPTION, meta.Description); } }
public void Invalid_token_format_returns_invalid_and_does_not_save() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { _tokenReader.Setup(x => x.ExtractId(_token)).Throws <FormatException>(); controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); var result = controller.Index(new ContentModel(_currentPage.Object)); Assert.False(((ApproveMember)((ViewResult)result).Model).ApprovalTokenValid); MemberService.Verify(x => x.Save(MEMBER.Object, true), Times.Never); } }
public void Valid_token_updates_member_approval_status_and_saves() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); MEMBER.Setup(x => x.GetValue("approvalToken", null, null, false)).Returns(_token); _tokenReader.Setup(x => x.HasExpired(It.IsAny <DateTime>())).Returns(false); var result = controller.Index(new ContentModel(_currentPage.Object)); MEMBER.VerifySet(x => x.IsApproved = true, Times.Once); MemberService.Verify(x => x.Save(MEMBER.Object, true), Times.Once); } }
public void Mismatched_token_returns_invalid_and_does_not_save() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); MEMBER.Setup(x => x.GetValue("approvalToken", null, null, false)).Returns(_token.Reverse()); _tokenReader.Setup(x => x.HasExpired(It.IsAny <DateTime>())).Returns(false); var result = controller.Index(new ContentModel(_currentPage.Object)); Assert.False(((ApproveMember)((ViewResult)result).Model).ApprovalTokenValid); MemberService.Verify(x => x.Save(MEMBER.Object, true), Times.Never); } }
public void Valid_token_returns_valid_with_member_name() { using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, Mock.Of <IProfilingLogger>(), UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); MEMBER.Setup(x => x.GetValue("approvalToken", null, null, false)).Returns(_token); _tokenReader.Setup(x => x.HasExpired(It.IsAny <DateTime>())).Returns(false); var result = controller.Index(new ContentModel(_currentPage.Object)); var model = (ApproveMember)((ViewResult)result).Model; Assert.True(model.ApprovalTokenValid); Assert.Equal(MEMBER.Object.Name, model.MemberName); } }
public void Valid_token_logs() { var logger = new Mock <IProfilingLogger>(); using (var controller = new ApproveMemberController(Mock.Of <IGlobalSettings>(), Mock.Of <IUmbracoContextAccessor>(), ServiceContext, AppCaches.NoCache, logger.Object, UmbracoHelper, _tokenReader.Object)) { controller.ControllerContext = new ControllerContext(base.HttpContext.Object, new RouteData(), controller); MEMBER.Setup(x => x.GetValue("approvalToken", null, null, false)).Returns(_token); _tokenReader.Setup(x => x.HasExpired(It.IsAny <DateTime>())).Returns(false); var result = controller.Index(new ContentModel(_currentPage.Object)); logger.Verify(x => x.Info(typeof(ApproveMemberController), LoggingTemplates.ApproveMember, MEMBER.Object.Username, MEMBER.Object.Key, typeof(ApproveMemberController), nameof(ApproveMemberController.Index)), Times.Once); } }