public void TestInitialiseGrid() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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.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_LoadsCustomColumnType() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithDateTimeParameterFormat(); IEditableGridControl grid = GetControlFactory().CreateEditableGridControl(); IGridInitialiser initialiser = new GridBaseInitialiser(grid.Grid, GetControlFactory()); IUIDef uiDef = classDef.UIDefCol["default"]; IUIGrid uiGridDef = uiDef.UIGrid; Type customColumnType = typeof(CustomDataGridViewColumnWin); uiGridDef[2].GridControlTypeName = customColumnType.Name; //"CustomDataGridViewColumn"; uiGridDef[2].GridControlAssemblyName = "Habanero.Faces.Test.Win"; 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 virtual void TestInitGrid_LoadsDataGridViewDateTimeColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithDateTimeParameterFormat(); IEditableGridControl grid = GetControlFactory().CreateEditableGridControl(); DisposeOnTearDown(grid); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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 virtual void TestInitGrid_LoadsDataGridViewComboBoxColumn_WhenPropDefMissing() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWith_Grid_1ComboBoxColumn(); IEditableGridControl grid = GetControlFactory().CreateEditableGridControl(); DisposeOnTearDown(grid); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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_UIDef_ZeroWidthColumn_HidesColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWith_Grid_2Columns_1stHasZeroWidth(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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 TestInitGrid_With_GridDef() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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 void TestInitGrid_UIDef_DateFormat_FormatsDateColumn() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadClassDefWithDateTimeParameterFormat(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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 GridBaseInitialiser(grid.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 TestInitGrid_WithInvalidUIDef() { //---------------Set up test pack------------------- IClassDef classDef = LoadMyBoDefaultClassDef(); IReadOnlyGridControl grid = CreateReadOnlyGridControl(); IGridInitialiser initialiser = new GridBaseInitialiser(grid.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 GridBaseInitialiser(grid.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.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 GridBaseInitialiser(grid.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 ------------------------- }