public static void UsingNewAnonSetup_ByFacade(string userName, Action<UserSetup> callback) { // Create default page setup which is expected to populate all three columns with widgets using(var facade = new Facade(new AppContext(string.Empty, userName))) { var response = facade.FirstVisitHomeTab(userName, string.Empty, true, false); Assert.NotNull(response.CurrentTab); Assert.NotEqual(0, response.UserTabs.Count()); Assert.NotNull(response.UserSetting); try { callback(response); } finally { // TODO: Clear the setup } } }
public void Revisit_should_load_the_pages_and_widgets_exactly_the_same() { var profile = default(UserProfile); UserSetup userVisitModel = null; UserSetup userRevisitModel = null; var facade = default(Facade); "Given an anonymous user who visited first".Context(() => { profile = MembershipHelper.CreateNewAnonUser(); facade = new Facade(new AppContext(string.Empty, profile.UserName)); userVisitModel = facade.FirstVisitHomeTab(profile.UserName, string.Empty, true, false); }); "When the same user visits again".Do(() => { userRevisitModel = facade.RepeatVisitHomeTab(profile.UserName, string.Empty, true, false); }); "It should load the exact same pages, column and widgets as the first visit produced".Assert(() => { userVisitModel.UserTabs.Each(firstVisitTab => { Assert.True(userRevisitModel.UserTabs.Exists(page => page.ID == firstVisitTab.ID)); var revisitTab = userRevisitModel.UserTabs.First(page => page.ID == firstVisitTab.ID); var revisitTabColumns = facade.GetColumnsInTab(revisitTab.ID); facade.GetColumnsInTab(firstVisitTab.ID).Each(firstVisitColumn => { var revisitColumn = revisitTabColumns.First(column => column.ID == firstVisitColumn.ID); var firstVisitWidgets = facade.GetWidgetInstancesInZoneWithWidget(firstVisitColumn.WidgetZone.ID); var revisitWidgets = facade.GetWidgetInstancesInZoneWithWidget(revisitColumn.WidgetZone.ID); firstVisitWidgets.Each(firstVisitWidget => Assert.True(revisitWidgets.Where(revisitWidget => revisitWidget.Id == firstVisitWidget.Id).Count() == 1)); }); }); facade.Dispose(); }); }
public void User_can_visit_a_page_directly_and_that_page_becomes_the_default() { var user = default(UserProfile); var facade = default(Facade); var userSetup = default(UserSetup); var anotherTab = default(Tab); "Given a user who has more than one tabs".Context(() => { user = MembershipHelper.CreateNewAnonUser(); facade = new Facade(new AppContext(user.UserName, user.UserName)); userSetup = facade.FirstVisitHomeTab(user.UserName, string.Empty, true, false); }); "When the user visits another tab directly".Do(() => { anotherTab = userSetup.UserTabs.Where(p => p.ID != userSetup.CurrentTab.ID).FirstOrDefault(); if (null == anotherTab) { anotherTab = facade.CreateTab("Test Tab", 0); facade.SetCurrentTab(facade.GetUserGuidFromUserName(user.UserName), userSetup.CurrentTab.ID); } facade.RepeatVisitHomeTab(user.UserName, anotherTab.UserTabName, true, false); }); "It becomes the default tab".Assert(() => { var revisit = facade.RepeatVisitHomeTab(user.UserName, string.Empty, true, false); Assert.Equal(anotherTab.ID, revisit.CurrentTab.ID); }); }