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); }); }); }) ) ); }
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(); }
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); }) ) ); }