public void TestInitGrid_LoadsCustomColumnType() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithDateTimeParameterFormat(); IEditableGridControl grid = GetControlFactory().CreateEditableGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; Type customColumnType = typeof(CustomDataGridViewColumnVWG); uiGridDef[2].GridControlTypeName = customColumnType.Name; //"CustomDataGridViewColumn"; uiGridDef[2].GridControlAssemblyName = "Habanero.Faces.Test.VWG"; AddControlToForm(grid); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); //---------------Test Result ----------------------- Assert.AreEqual(6, grid.Grid.Columns.Count); IDataGridViewColumn column3 = grid.Grid.Columns[3]; Assert.AreEqual("TestDateTime", column3.Name); Assert.IsInstanceOf(typeof(IDataGridViewColumn), column3); AssertGridColumnTypeAfterCast(column3, customColumnType); }
public void TestSetupColumnAsCheckBoxType_FromClassDef() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWith_Grid_1CheckBoxColumn(); IEditableGridControl gridControl = GetControlFactory().CreateEditableGridControl(); GridInitialiser gridInitialiser = new GridInitialiser(gridControl, GetControlFactory()); //--------------Assert PreConditions---------------- Assert.AreEqual(0, gridControl.Grid.Columns.Count); Assert.AreEqual(1, classDef.UIDefCol.Count); const string uiDefName = "default"; IUIGrid uiGridDef = classDef.UIDefCol[uiDefName].UIGrid; Assert.IsNotNull(uiGridDef); Assert.AreEqual(1, uiGridDef.Count); //---------------Execute Test ---------------------- gridInitialiser.InitialiseGrid(classDef, uiDefName); //---------------Test Result ----------------------- Assert.AreEqual(2, gridControl.Grid.Columns.Count, "Should have ID column and should have checkBoxColumn"); IDataGridViewColumn dataGridViewColumn = gridControl.Grid.Columns[1]; AssertIsCheckBoxColumnType(dataGridViewColumn); //---------------Tear Down ------------------------- }
public virtual void TestInitGrid_LoadsDataGridViewComboBoxColumn_WhenPropDefMissing() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWith_Grid_1ComboBoxColumn(); IEditableGridControl grid = GetControlFactory().CreateEditableGridControl(); DisposeOnTearDown(grid); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; IUIGridColumn uiComboColDef = uiGridDef[0]; uiComboColDef.GridControlTypeName = "DataGridViewComboBoxColumn"; uiComboColDef.PropertyName = "OtherProp"; AddControlToForm(grid); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); //---------------Test Result ----------------------- Assert.AreEqual(2, grid.Grid.Columns.Count); IDataGridViewColumn column1 = grid.Grid.Columns[1]; Assert.AreEqual("OtherProp", column1.Name); Assert.AreEqual(uiComboColDef.Heading, column1.HeaderText); Assert.IsInstanceOf(typeof(IDataGridViewComboBoxColumn), column1); AssertGridColumnTypeAfterCast(column1, GetComboBoxGridColumnType()); }
public void TestInitGrid_With_GridDef() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIGrid uiGridDef = classDef.UIDefCol["default"].UIGrid; //---------------Assert Preconditions--------------- Assert.AreEqual(2, uiGridDef.Count, "2 defined columns in the defaultDef"); IUIGridColumn columnDef1 = uiGridDef[0]; Assert.AreEqual("TestProp", columnDef1.PropertyName); IUIGridColumn columnDef2 = uiGridDef[1]; Assert.AreEqual("TestProp2", columnDef2.PropertyName); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef, uiGridDef, "test"); //---------------Test Result ----------------------- IDataGridViewColumn idColumn = grid.Grid.Columns[0]; AssertVerifyIDFieldSetUpCorrectly(idColumn); IDataGridViewColumn dataColumn1 = grid.Grid.Columns[1]; AssertThatDataColumnSetupCorrectly(classDef, columnDef1, dataColumn1); IDataGridViewColumn dataColumn2 = grid.Grid.Columns[2]; AssertThatDataColumnSetupCorrectly(classDef, columnDef2, dataColumn2); //---------------Tear Down ------------------------- }
public virtual void TestInitGrid_LoadsDataGridViewDateTimeColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithDateTimeParameterFormat(); IEditableGridControl grid = GetControlFactory().CreateEditableGridControl(); DisposeOnTearDown(grid); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; IUIGridColumn uiDTColDef = uiGridDef[2]; uiDTColDef.GridControlTypeName = "DataGridViewDateTimeColumn"; AddControlToForm(grid); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); //---------------Test Result ----------------------- Assert.AreEqual(6, grid.Grid.Columns.Count); IDataGridViewColumn column3 = grid.Grid.Columns[3]; Assert.AreEqual("TestDateTime", column3.Name); Assert.AreEqual(uiDTColDef.Heading, column3.HeaderText); Assert.IsInstanceOf(typeof(IDataGridViewColumn), column3); AssertGridColumnTypeAfterCast(column3, GetDateTimeGridColumnType()); }
public void TestInitGrid_UIDef_ZeroWidthColumn_HidesColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWith_Grid_2Columns_1stHasZeroWidth(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; //---------------Assert Preconditions--------------- Assert.AreEqual(2, uiGridDef.Count, "2 defined columns in the defaultDef"); IUIGridColumn columnDef1 = uiGridDef[0]; Assert.AreEqual("TestProp", columnDef1.PropertyName); Assert.AreEqual(0, columnDef1.Width); IUIGridColumn columnDef2 = uiGridDef[1]; Assert.AreEqual("TestProp2", columnDef2.PropertyName); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); //---------------Test Result ----------------------- IDataGridViewColumn dataColumn1 = grid.Grid.Columns[1]; AssertThatDataColumnSetupCorrectly(classDef, columnDef1, dataColumn1); IDataGridViewColumn dataColumn2 = grid.Grid.Columns[2]; AssertThatDataColumnSetupCorrectly(classDef, columnDef2, dataColumn2); //---------------Tear Down ------------------------- }
public void TestInitialiseGrid() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; //---------------Assert Preconditions--------------- Assert.AreEqual(2, uiGridDef.Count, "2 defined columns in the defaultDef"); // Assert.AreEqual("", grid.UiDefName); Assert.IsNull(grid.ClassDef); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); //---------------Test Result ----------------------- Assert.AreEqual("default", grid.UiDefName); Assert.AreEqual(classDef, grid.ClassDef); Assert.AreEqual (uiGridDef.Count + 1, grid.Grid.Columns.Count, "There should be 1 ID column and 2 defined columns in the defaultDef"); Assert.IsTrue(initialiser.IsInitialised); // Assert.IsTrue(grid.IsInitialised); }
public void TestInitGrid_UIDef_DateFormat_FormatsDateColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithDateTimeParameterFormat(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; AddControlToForm(grid); GlobalUIRegistry.DateDisplaySettings = new DateDisplaySettings(); GlobalUIRegistry.DateDisplaySettings.GridDateFormat = "dd MMM yyyy"; //--------------Assert PreConditions---------------- const string formattedPropertyName = "TestDateTimeFormat"; Assert.IsNotNull(uiGridDef[formattedPropertyName]); Assert.IsNotNull(uiGridDef["TestDateTimeNoFormat"]); Assert.IsNotNull(uiGridDef["TestDateTime"]); Assert.IsNull(uiGridDef["TestDateTimeNoFormat"].GetParameterValue("dateFormat")); Assert.IsNull(uiGridDef["TestDateTime"].GetParameterValue("dateFormat")); object dateFormatObject = uiGridDef[formattedPropertyName].GetParameterValue("dateFormat"); string dateFormatParameter = dateFormatObject.ToString(); const string expectedFormat = "dd.MMM.yyyy"; Assert.AreEqual(expectedFormat, dateFormatParameter); MyBO myBo = new MyBO(); DateTime currentDateTime = DateTime.Now; myBo.SetPropertyValue(formattedPropertyName, currentDateTime); BusinessObjectCollection <MyBO> col = new BusinessObjectCollection <MyBO>(); col.Add(myBo); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); grid.BusinessObjectCollection = col; //---------------Test Result ----------------------- Assert.AreEqual(1, col.Count); Assert.AreEqual(1, grid.Grid.Rows.Count); IDataGridViewCell dataGridViewCell = grid.Grid.Rows[0].Cells[formattedPropertyName]; //((DataGridViewCellVWG) dataGridViewCell).DataGridViewCell.HasStyle = false; Assert.AreSame(typeof(DateTime), dataGridViewCell.ValueType); Assert.AreEqual(currentDateTime.ToString(expectedFormat), dataGridViewCell.FormattedValue); //---------------Tear Down ------------------------- }
public void TestInitGrid_UIDef_CurrencyFormat_WhenVirtualProp_ShouldFormatColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithCurrencyParameterFormat(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; AddControlToForm(grid); //--------------Assert PreConditions---------------- const string formattedPropertyName = "TestCurrencyFormat"; Assert.IsNotNull(uiGridDef[formattedPropertyName]); Assert.IsNotNull(uiGridDef[formattedPropertyName].GetParameterValue("currencyFormat")); const string unformattedPropName = "TestCurrencyNoFormat"; Assert.IsNotNull(uiGridDef[unformattedPropName]); Assert.IsNull(uiGridDef[unformattedPropName].GetParameterValue("currencyFormat")); object currencyFormat = uiGridDef[formattedPropertyName].GetParameterValue("currencyFormat"); string currencyFormatParameter = currencyFormat.ToString(); const string expectedFormat = "### ###.##"; Assert.AreEqual(expectedFormat, currencyFormatParameter); MyBO myBo = new MyBO(); const double currencyValue = 222222.55555d; myBo.SetPropertyValue(formattedPropertyName, currencyValue); BusinessObjectCollection <MyBO> col = new BusinessObjectCollection <MyBO>(); col.Add(myBo); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); grid.BusinessObjectCollection = col; //---------------Test Result ----------------------- Assert.AreEqual(1, col.Count); Assert.AreEqual(1, grid.Grid.Rows.Count); IDataGridViewCell dataGridViewCell = grid.Grid.Rows[0].Cells[formattedPropertyName]; //((DataGridViewCellVWG) dataGridViewCell).DataGridViewCell.HasStyle = false; Assert.AreSame(typeof(Double), dataGridViewCell.ValueType); Assert.AreEqual(currencyValue.ToString(expectedFormat), dataGridViewCell.FormattedValue); }
public void TestSetupComboBoxFromClassDef_SetsItemsInComboBox() { //---------------Set up test pack------------------- IClassDef classDef = ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); ContactPerson.DeleteAllContactPeople(); OrganisationTestBO.ClearAllFromDB(); OrganisationTestBO.CreateSavedOrganisation(); OrganisationTestBO.CreateSavedOrganisation(); ContactPersonTestBO.CreateSavedContactPersonNoAddresses(); TestUtil.WaitForGC(); BusinessObjectCollection <ContactPersonTestBO> col = new BusinessObjectCollection <ContactPersonTestBO>(); col.LoadAll(); IEditableGridControl gridControl = GetControlFactory().CreateEditableGridControl(); GridInitialiser gridInitialiser = new GridInitialiser(gridControl, GetControlFactory()); //--------------Assert PreConditions---------------- Assert.AreEqual(0, gridControl.Grid.Columns.Count); Assert.AreEqual(1, classDef.UIDefCol.Count); const string uiDefName = "default"; IUIGrid uiGridDef = classDef.UIDefCol[uiDefName].UIGrid; Assert.IsNotNull(uiGridDef); Assert.AreEqual(1, uiGridDef.Count); Assert.AreEqual(1, col.Count); Assert.AreEqual(2, BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <OrganisationTestBO> ("").Count); //---------------Execute Test ---------------------- gridInitialiser.InitialiseGrid(classDef, uiDefName); //---------------Test Result ----------------------- Assert.AreEqual(2, gridControl.Grid.Columns.Count, "Should have ID column and should have comboBoxColumn"); IDataGridViewColumn dataGridViewColumn = gridControl.Grid.Columns[1]; AssertIsComboBoxColumnType(dataGridViewColumn); AssertComboBoxItemCount(dataGridViewColumn, 3); }
public void TestInitGrid_WithInvalidUIDef() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); //---------------Execute Test ---------------------- try { initialiser.InitialiseGrid(classDef, "NonExistantUIDef"); Assert.Fail("Should raise an error if the class def does not have the UIDef"); //---------------Test Result ----------------------- } catch (ArgumentException ex) { StringAssert.Contains(" does not contain a definition for UIDef ", ex.Message); } //---------------Tear Down ------------------------- }
public void TestInitGrid_WithNonDefaultUIDef() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); const string alternateUIDefName = "Alternate"; IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol[alternateUIDefName]; IUIGrid uiGridDef = uiDef.UIGrid; //---------------Assert Preconditions--------------- Assert.AreEqual(1, uiGridDef.Count, "1 defined column in the alternateUIDef"); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef, alternateUIDefName); //---------------Test Result ----------------------- Assert.AreEqual(alternateUIDefName, grid.UiDefName); Assert.AreEqual(classDef, grid.ClassDef); Assert.AreEqual (uiGridDef.Count + 1, grid.Grid.Columns.Count, "There should be 1 ID column and 1 defined column in the alternateUIDef"); //---------------Tear Down ------------------------- }
public void TestInitGrid_DefaultUIDef_VerifyColumnsSetupCorrectly() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridInitialiser(grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; GlobalUIRegistry.DateDisplaySettings = new DateDisplaySettings(); GlobalUIRegistry.DateDisplaySettings.GridDateFormat = "dd MMM yyyy"; //---------------Assert Preconditions--------------- Assert.AreEqual(2, uiGridDef.Count, "2 defined columns in the defaultDef"); IUIGridColumn columnDef1 = uiGridDef[0]; Assert.AreEqual("TestProp", columnDef1.PropertyName); IUIGridColumn columnDef2 = uiGridDef[1]; Assert.AreEqual("TestProp2", columnDef2.PropertyName); Assert.IsNotNull(GlobalUIRegistry.DateDisplaySettings); //---------------Execute Test ---------------------- initialiser.InitialiseGrid(classDef); //---------------Test Result ----------------------- IDataGridViewColumn idColumn = grid.Grid.Columns[0]; AssertVerifyIDFieldSetUpCorrectly(idColumn); IDataGridViewColumn dataColumn1 = grid.Grid.Columns[1]; AssertThatDataColumnSetupCorrectly(classDef, columnDef1, dataColumn1); Assert.AreEqual("", dataColumn1.DefaultCellStyle.Format); IDataGridViewColumn dataColumn2 = grid.Grid.Columns[2]; AssertThatDataColumnSetupCorrectly(classDef, columnDef2, dataColumn2); //---------------Tear Down ------------------------- }
/// <summary> /// Initialises the grid without a ClassDef. This is used where the columns are set up manually. /// A typical case of when you would want to set the columns manually would be when the grid /// requires alternate columns, such as images to indicate the state of the object or buttons/links. /// The grid must already have at least one column added with the name "HABANERO_OBJECTID". This column is used /// to synchronise the grid with the business objects. /// </summary> /// <exception cref="GridBaseInitialiseException">Occurs where the columns have not /// already been defined for the grid</exception> public void Initialise() { GridInitialiser.InitialiseGrid(); }
/// <summary> /// Initialises the grid structure with a given UI definition /// </summary> /// <param name="classDef">The Classdef used to initialise the grid</param> /// <param name="gridDef">The <see cref="IUIGrid"/> that specifies the grid </param> /// <param name="uiDefName">The name of the <see cref="IUIGrid"/></param> public void Initialise(IClassDef classDef, IUIGrid gridDef, string uiDefName) { GridInitialiser.InitialiseGrid(classDef, gridDef, uiDefName); }
/// <summary> /// Initiliases the grid structure using the default UI class definition (implicitly named "default") /// </summary> /// <param name="classDef">The class definition of the business objects shown in the grid</param> public void Initialise(IClassDef classDef) { GridInitialiser.InitialiseGrid(classDef); }