Example #1
0
        public void First_Visit_Should_Return_Pages_And_Settings()
        {
            WorkflowTest.UsingWorkflowRuntime(() =>
                                              MembershipHelper.UsingNewAnonUser((profile) =>
                                                                                SetupHelper.UsingNewAnonSetup(profile.UserName, (response) =>
            {
                response.UserPages.Each((page) =>
                {
                    var columns = WorkflowTest.Run <GetColumnsInPageWorkflow, GetColumnsInPageWorkflowRequest, GetColumnsInPageWorkflowResponse>(
                        new GetColumnsInPageWorkflowRequest {
                        PageId = page.ID, UserName = profile.UserName
                    }
                        ).Columns;

                    Assert.AreNotEqual(0, page.ColumnCount, "Page must have at least one column");
                    Assert.AreEqual(page.ColumnCount, columns.Count, "Not same columns available in the page");

                    columns.Each((column) =>
                    {
                        var widgets = WorkflowTest.Run <LoadWidgetInstancesInZoneWorkflow, LoadWidgetInstancesInZoneRequest, LoadWidgetInstancesInZoneResponse>(
                            new LoadWidgetInstancesInZoneRequest {
                            WidgetZoneId = column.WidgetZoneId, UserName = profile.UserName
                        }
                            ).WidgetInstances;

                        Assert.AreNotEqual(0, widgets.Count, "No widgets found on page " + page.Title + ", column " + column.ColumnNo);
                    });
                });
            })
                                                                                )
                                              );
        }
Example #2
0
        public void Very_First_Vist_With_Empty_Database_Should_Setup_Default_Pages()
        {
            // Initialize database to empty state so that we can test the first time initalization process
            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[1].ConnectionString))
                using (SqlCommand cmd = new SqlCommand("EXEC Resurrection", con))
                {
                    con.Open();
                    cmd.ExecuteNonQuery();
                }

            // Prepare the database for use
            WorkflowTest.UsingWorkflowRuntime(() => new DashboardFacade(string.Empty).SetupDefaultSetting());

            // Do the first visit test
            First_Visit_Should_Return_Pages_And_Settings();
        }
Example #3
0
        public void Layout_Change_Should_Move_Widgets_To_Last_Available_Column()
        {
            const int ColumnsBeforeChange = 3;
            const int ColumnsAfterChange = 2;
            const int LayoutType = 2;

                MembershipHelper.UsingNewAnonUser((profile) =>
                    SetupHelper.UsingNewAnonSetup(profile.UserName, (setup) =>
                    {
                        int originalLayoutType = setup.CurrentPage.LayoutType;

                        // Ensure there's widgets on the last column
                        WidgetZone lastZone = DatabaseHelper.GetSingle<WidgetZone, int, int>(DatabaseHelper.SubsystemEnum.WidgetZone,
                            setup.CurrentPage.ID, ColumnsBeforeChange-1,
                            LinqQueries.CompiledQuery_GetWidgetZoneByPageId_ColumnNo);
                        List<WidgetInstance> widgetsOnLastZone = DatabaseHelper.GetList<WidgetInstance, int>(DatabaseHelper.SubsystemEnum.WidgetInstance,
                            lastZone.ID,
                            LinqQueries.CompiledQuery_GetWidgetInstancesByWidgetZoneId);
                        Assert.AreNotEqual(0, widgetsOnLastZone.Count, "No widget found on last column to move");

                        // Change to 25%, 75% two column layout
                        WorkflowTest.Run<ModifyPageLayoutWorkflow, ModifyTabLayoutWorkflowRequest, ModifyTabLayoutWorkflowResponse>(
                            new ModifyTabLayoutWorkflowRequest { UserName = profile.UserName, LayoutType = LayoutType }
                            );

                        // Get the page setup again to ensure the number of columns are changed
                        var newSetup = WorkflowTest.Run<UserVisitWorkflow, UserVisitWorkflowRequest, UserVisitWorkflowResponse>(
                            new UserVisitWorkflowRequest { IsAnonymous = true, PageName = "", UserName = profile.UserName }
                            );
                        Assert.AreEqual(ColumnsAfterChange, newSetup.CurrentPage.ColumnCount, "Number of columns did not change");

                        // Get the columns to verify the column number are same and each column has the expected width set
                        List<Column> columns = DatabaseHelper.GetList<Column, int>(DatabaseHelper.SubsystemEnum.Column,
                            newSetup.CurrentPage.ID,
                            LinqQueries.CompiledQuery_GetColumnsByPageId);
                        Assert.AreEqual(ColumnsAfterChange, columns.Count, "There are still more columns in database");

                        int[] columnWidths = Page.GetColumnWidths(LayoutType);
                        foreach (Column col in columns)
                            Assert.AreEqual(columnWidths[col.ColumnNo], col.ColumnWidth, "Column width is not as expected for Column No: " + col.ColumnNo);

                        // Ensure the last column does not have any widgets
                        List<WidgetInstance> remainingWidgetsOnLastZone = DatabaseHelper.GetList<WidgetInstance, int>(DatabaseHelper.SubsystemEnum.WidgetInstance,
                            lastZone.ID,
                            LinqQueries.CompiledQuery_GetWidgetInstancesByWidgetZoneId);
                        Assert.AreEqual(0, remainingWidgetsOnLastZone.Count, "Widgets are still in the last column. {0}".FormatWith(lastZone.ID));

                        // Now change back to 3 column layout and ensure the last column is added
                        WorkflowTest.Run<ModifyPageLayoutWorkflow, ModifyTabLayoutWorkflowRequest, ModifyTabLayoutWorkflowResponse>(
                            new ModifyTabLayoutWorkflowRequest { UserName = profile.UserName, LayoutType = originalLayoutType }
                            );
                        List<Column> originalColumns = DatabaseHelper.GetList<Column, int>(DatabaseHelper.SubsystemEnum.Column,
                            setup.CurrentPage.ID,
                            LinqQueries.CompiledQuery_GetColumnsByPageId);
                        Assert.AreEqual(ColumnsBeforeChange, originalColumns.Count, "There are still more columns in database");

                        // and the column width distribution must have changed as well
                        int[] originalColumnWidths = Page.GetColumnWidths(originalLayoutType);
                        foreach (Column col in originalColumns)
                            Assert.AreEqual(originalColumnWidths[col.ColumnNo], col.ColumnWidth, "Column width is not as expected for Column No: " + col.ColumnNo);

                    })
                )
            );
        }