示例#1
0
        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
                }
            }
        }
示例#2
0
        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();
            });
        }
示例#3
0
        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);
                });
        }