public void DmTable_RejectChanges() { tbl.AcceptChanges(); var dmRow = tbl.Rows[0]; dmRow["CustomerID"] = 2; tbl.RejectChanges(); Assert.Equal(1, dmRow["CustomerID"]); Assert.Equal(DmRowState.Unchanged, dmRow.RowState); // Try to reject changes after creating a table, with no acceptchanges var tbl3 = new DmTable(); var id3 = new DmColumn <Int32>("ServiceTicketID"); id3.IsAutoIncrement = true; tbl3.Columns.Add(id3); var key3 = new DmKey(new DmColumn[] { id3 }); tbl3.PrimaryKey = key3; tbl3.Columns.Add(new DmColumn <string>("Title")); var st3 = tbl3.NewRow(); st3["Title"] = "Titre AER"; tbl3.Rows.Add(st3); // SInce we didn't AcceptChanges, raise an error Assert.Throws <Exception>(() => tbl3.RejectChanges()); }
/// <summary> /// Copies the table schema from a DmTableSurrogate object into a DmTable object. /// </summary> public void ReadSchemaIntoDmTable(DmTable dt) { if (dt == null) { throw new ArgumentNullException("dt", "DmTable"); } dt.TableName = this.TableName; dt.Culture = new CultureInfo(this.CultureInfoName); dt.Schema = this.Schema; dt.CaseSensitive = this.CaseSensitive; dt.OriginalProvider = this.OriginalProvider; dt.SyncDirection = this.SyncDirection; for (int i = 0; i < this.Columns.Count; i++) { DmColumn dmColumn = this.Columns[i].ConvertToDmColumn(); dt.Columns.Add(dmColumn); } if (this.PrimaryKeys != null && this.PrimaryKeys.Count > 0) { DmColumn[] keyColumns = new DmColumn[this.PrimaryKeys.Count]; for (int i = 0; i < this.PrimaryKeys.Count; i++) { string columnName = this.PrimaryKeys[i]; keyColumns[i] = dt.Columns.First(c => dt.IsEqual(c.ColumnName, columnName)); } DmKey key = new DmKey(keyColumns); dt.PrimaryKey = key; } }
public void DmColumn_Create_Columns() { var tbl = new DmTable("ServiceTickets"); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; // if is PK, non null allowable Assert.False(id.AllowDBNull); Assert.Equal("ServiceTicketID", id.ColumnName); Assert.Equal(typeof(Guid), id.DataType); Assert.Equal(0, id.Ordinal); Assert.True(id.IsUnique); var titleColumn = new DmColumn <string>("Title"); tbl.Columns.Add(titleColumn); Assert.Equal("Title", titleColumn.ColumnName); Assert.Equal(typeof(string), titleColumn.DataType); Assert.Equal(1, titleColumn.Ordinal); Assert.False(titleColumn.IsUnique); var sv = new DmColumn <int>("StatusValue"); tbl.Columns.Add(sv); Assert.Equal("StatusValue", sv.ColumnName); Assert.Equal(typeof(Int32), sv.DataType); Assert.Equal(2, sv.Ordinal); Assert.False(sv.IsUnique); var opened = new DmColumn <DateTime>("Opened"); tbl.Columns.Add(opened); Assert.Equal("Opened", opened.ColumnName); Assert.Equal(typeof(DateTime), opened.DataType); Assert.Equal(3, opened.Ordinal); Assert.False(opened.IsUnique); var closedColumn = DmColumn.CreateColumn("Closed", typeof(DateTime)); tbl.Columns.Add(closedColumn); Assert.Equal("Closed", closedColumn.ColumnName); Assert.Equal(typeof(DateTime), closedColumn.DataType); Assert.Equal(4, closedColumn.Ordinal); Assert.False(closedColumn.IsUnique); }
public void DmColumn_Create_Columns() { var tbl = new DmTable("ServiceTickets"); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; // if is PK, non null allowable Assert.Equal(false, id.AllowDBNull); Assert.Equal("ServiceTicketID", id.ColumnName); Assert.Equal(id.DataType, typeof(Guid)); Assert.Equal(id.Ordinal, 0); Assert.Equal(id.Unique, true); var titleColumn = new DmColumn <string>("Title"); tbl.Columns.Add(titleColumn); Assert.Equal("Title", titleColumn.ColumnName); Assert.Equal(titleColumn.DataType, typeof(string)); Assert.Equal(titleColumn.Ordinal, 1); Assert.Equal(titleColumn.Unique, false); var sv = new DmColumn <int>("StatusValue"); tbl.Columns.Add(sv); Assert.Equal("StatusValue", sv.ColumnName); Assert.Equal(sv.DataType, typeof(Int32)); Assert.Equal(sv.Ordinal, 2); Assert.Equal(sv.Unique, false); var opened = new DmColumn <DateTime>("Opened"); tbl.Columns.Add(opened); Assert.Equal("Opened", opened.ColumnName); Assert.Equal(opened.DataType, typeof(DateTime)); Assert.Equal(opened.Ordinal, 3); Assert.Equal(opened.Unique, false); var closedColumn = DmColumn.CreateColumn("Closed", typeof(DateTime)); tbl.Columns.Add(closedColumn); Assert.Equal("Closed", closedColumn.ColumnName); Assert.Equal(closedColumn.DataType, typeof(DateTime)); Assert.Equal(closedColumn.Ordinal, 4); Assert.Equal(closedColumn.Unique, false); }
public void DmColumn_SetOrdinal() { var tbl = new DmTable("ServiceTickets"); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; var titleColumn = new DmColumn <string>("Title"); tbl.Columns.Add(titleColumn); var sv = new DmColumn <int>("StatusValue"); tbl.Columns.Add(sv); var opened = new DmColumn <DateTime>("Opened"); tbl.Columns.Add(opened); var closedColumn = DmColumn.CreateColumn("Closed", typeof(DateTime)); tbl.Columns.Add(closedColumn); Assert.Equal(0, id.Ordinal); Assert.Equal(1, titleColumn.Ordinal); Assert.Equal(2, sv.Ordinal); Assert.Equal(3, opened.Ordinal); Assert.Equal(4, closedColumn.Ordinal); sv.SetOrdinal(1); Assert.Equal(0, id.Ordinal); Assert.Equal(1, sv.Ordinal); Assert.Equal(2, titleColumn.Ordinal); Assert.Equal(3, opened.Ordinal); Assert.Equal(4, closedColumn.Ordinal); closedColumn.SetOrdinal(0); Assert.Equal(0, closedColumn.Ordinal); Assert.Equal(1, id.Ordinal); Assert.Equal(2, sv.Ordinal); Assert.Equal(3, titleColumn.Ordinal); Assert.Equal(4, opened.Ordinal); }
public void DmTable_Clone_Copy() { var tbl = new DmTable("ServiceTickets"); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; tbl.Columns.Add(new DmColumn <string>("Title")); tbl.Columns.Add(new DmColumn <string>("Description")); tbl.Columns.Add(new DmColumn <int>("StatusValue")); tbl.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl.Columns.Add(new DmColumn <DateTime>("Opened")); tbl.Columns.Add(new DmColumn <DateTime>("Closed")); tbl.Columns.Add(new DmColumn <int>("CustomerID")); var st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); var tbl2 = tbl.Clone(); Assert.NotSame(tbl2, tbl); Assert.Empty(tbl2.Rows); Assert.Equal(8, tbl2.Columns.Count); Assert.NotNull(tbl2.PrimaryKey); var tbl3 = tbl.Copy(); Assert.NotSame(tbl3, tbl2); Assert.NotSame(tbl3, tbl); Assert.NotNull(tbl3.PrimaryKey); Assert.Equal(8, tbl3.Columns.Count); Assert.NotEmpty(tbl3.Rows); }
public void DmColumn_Create_AutoIncorement_Column() { var tbl = new DmTable("ServiceTickets"); var id = new DmColumn <int>("ServiceTicketID"); id.IsAutoIncrement = true; id.AutoIncrementSeed = 1; id.AutoIncrementStep = 1; tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; output.WriteLine("AutoIncrement is correctly initialized"); }
public void DmTable_ImportRow() { var tbl2 = new DmTable(); var id = new DmColumn <Guid>("ServiceTicketID"); tbl2.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl2.PrimaryKey = key; tbl2.Columns.Add(new DmColumn <string>("Title")); tbl2.Columns.Add(new DmColumn <string>("Description")); tbl2.Columns.Add(new DmColumn <int>("StatusValue")); tbl2.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl2.Columns.Add(new DmColumn <DateTime>("Opened")); tbl2.Columns.Add(new DmColumn <DateTime>("Closed")); tbl2.Columns.Add(new DmColumn <int>("CustomerID")); var st = tbl2.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl2.Rows.Add(st); // Importing into tbl var st2 = this.tbl.ImportRow(st); // acceptchanges to change the row state this.tbl.AcceptChanges(); Assert.NotEqual(st.RowState, st2.RowState); // making change to be sure st2["CustomerID"] = 2; Assert.Equal(2, st2["CustomerID"]); Assert.Equal(1, st["CustomerID"]); }
public void DmRow_Add_Rows() { var tbl = new DmTable("ServiceTickets"); var idColumn = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(idColumn); var key = new DmKey(new DmColumn[] { idColumn }); tbl.PrimaryKey = key; var titleColumn = new DmColumn <string>("Title"); tbl.Columns.Add(titleColumn); var statusValueColumn = new DmColumn <int>("StatusValue"); tbl.Columns.Add(statusValueColumn); var openedColumn = new DmColumn <DateTime>("Opened"); tbl.Columns.Add(openedColumn); var st = tbl.NewRow(); Assert.Null(st[0]); Assert.Null(st[1]); var id = Guid.NewGuid(); var dateNow = DateTime.Now; st["ServiceTicketID"] = id; st["Title"] = "Titre AER"; st["StatusValue"] = 2; st["Opened"] = dateNow; tbl.Rows.Add(st); Assert.Equal(id, st["ServiceTicketID"]); Assert.Equal("Titre AER", st["Title"]); Assert.Equal(2, st["StatusValue"]); Assert.Equal(dateNow, st["Opened"]); }
public DmSurrogateTests() { set = new DmSet("ClientDmSet"); var tbl = new DmTable("ServiceTickets"); set.Tables.Add(tbl); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; tbl.Columns.Add(new DmColumn <string>("Title")); tbl.Columns.Add(new DmColumn <string>("Description")); tbl.Columns.Add(new DmColumn <int>("StatusValue")); tbl.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl.Columns.Add(new DmColumn <DateTime>("Opened")); tbl.Columns.Add(new DmColumn <DateTime>("Closed")); tbl.Columns.Add(new DmColumn <int>("CustomerID")); tbl.Columns.Add(new DmColumn <Object>("VariantObject")); #region adding rows var st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; st["VariantObject"] = DateTime.Now; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre DE"; st["Description"] = "Description 2"; st["EscalationLevel"] = 3; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; st["VariantObject"] = 12; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre FF"; st["Description"] = "Description 2"; st["EscalationLevel"] = 3; st["StatusValue"] = 4; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; st["VariantObject"] = new { Prop1 = 12, Prop2 = DateTime.Now }; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AC"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; st["VariantObject"] = null; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre ZDZDZ"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; st["VariantObject"] = "Hello"; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre VGH"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; st["VariantObject"] = DmRowState.Added; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre ETTG"; st["Description"] = "Description 2"; st["EscalationLevel"] = 2; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; st["VariantObject"] = 0; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre SADZD"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; st["VariantObject"] = new Byte[0]; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AEEE"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 0; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre CZDADA"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 0; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AFBBB"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 3; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AZDCV"; st["Description"] = "Description 2"; st["EscalationLevel"] = 2; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre UYTR"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre NHJK"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre XCVBN"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre LKNB"; st["Description"] = "Description 2"; st["EscalationLevel"] = 3; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre ADFVB"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); #endregion tbl.AcceptChanges(); }
public DmTableTests() { this.tbl = new DmTable("ServiceTickets"); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; tbl.Columns.Add(new DmColumn <string>("Title")); tbl.Columns.Add(new DmColumn <string>("Description")); tbl.Columns.Add(new DmColumn <int>("StatusValue")); tbl.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl.Columns.Add(new DmColumn <DateTime>("Opened")); tbl.Columns.Add(new DmColumn <DateTime>("Closed")); tbl.Columns.Add(new DmColumn <int>("CustomerID")); #region adding rows var st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre DE"; st["Description"] = "Description 2"; st["EscalationLevel"] = 3; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre FF"; st["Description"] = "Description 2"; st["EscalationLevel"] = 3; st["StatusValue"] = 4; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AC"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre ZDZDZ"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre VGH"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre ETTG"; st["Description"] = "Description 2"; st["EscalationLevel"] = 2; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre SADZD"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AEEE"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 0; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre CZDADA"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 0; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AFBBB"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 3; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AZDCV"; st["Description"] = "Description 2"; st["EscalationLevel"] = 2; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre UYTR"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre NHJK"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre XCVBN"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 1; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 2; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre LKNB"; st["Description"] = "Description 2"; st["EscalationLevel"] = 3; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 3; tbl.Rows.Add(st); st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre ADFVB"; st["Description"] = "Description 2"; st["EscalationLevel"] = 0; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); #endregion }
public void DmTable_Merge() { var tbl2 = new DmTable(); var id = new DmColumn <Guid>("ServiceTicketID"); tbl2.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl2.PrimaryKey = key; tbl2.Columns.Add(new DmColumn <string>("Title")); tbl2.Columns.Add(new DmColumn <string>("Description")); tbl2.Columns.Add(new DmColumn <int>("StatusValue")); tbl2.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl2.Columns.Add(new DmColumn <DateTime>("Opened")); tbl2.Columns.Add(new DmColumn <DateTime>("Closed")); tbl2.Columns.Add(new DmColumn <int>("CustomerID")); var st = tbl2.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl2.Rows.Add(st); // Importing into tbl var actualRowsCount = this.tbl.Rows.Count; this.tbl.Merge(tbl2); Assert.Equal(actualRowsCount + 1, this.tbl.Rows.Count); var tbl3 = new DmTable(); var id3 = new DmColumn <Guid>("ServiceTicketID"); tbl3.Columns.Add(id3); var key3 = new DmKey(new DmColumn[] { id3 }); tbl3.PrimaryKey = key3; tbl3.Columns.Add(new DmColumn <string>("Title")); tbl3.Columns.Add(new DmColumn <string>("Description")); tbl3.Columns.Add(new DmColumn <int>("StatusValue")); tbl3.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl3.Columns.Add(new DmColumn <DateTime>("Opened")); tbl3.Columns.Add(new DmColumn <DateTime>("Closed")); tbl3.Columns.Add(new DmColumn <int>("CustomerID")); tbl3.Columns.Add(new DmColumn <int>("AAAAAAAAAAAAAA")); tbl3.Columns.Add(new DmColumn <string>("VVVVVVVVVVVVVVVVVVVV")); var st3 = tbl3.NewRow(); st3["ServiceTicketID"] = Guid.NewGuid(); st3["Title"] = "Titre AER"; st3["Description"] = "Description 2"; st3["EscalationLevel"] = 1; st3["StatusValue"] = 2; st3["Opened"] = DateTime.Now; st3["Closed"] = null; st3["CustomerID"] = 1; st3["AAAAAAAAAAAAAA"] = "A"; st3["VVVVVVVVVVVVVVVVVVVV"] = "V"; tbl3.Rows.Add(st3); // Importing into tbl actualRowsCount = this.tbl.Rows.Count; this.tbl.Merge(tbl3); Assert.Equal(actualRowsCount + 1, this.tbl.Rows.Count); Assert.Equal(10, this.tbl.Columns.Count); }
public void DmTable_LoadDataRow() { // Trying with a key GUID (not auto incremented) var tbl2 = new DmTable(); var id = new DmColumn <Guid>("ServiceTicketID"); tbl2.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl2.PrimaryKey = key; tbl2.Columns.Add(new DmColumn <string>("Title")); tbl2.Columns.Add(new DmColumn <string>("Description")); tbl2.Columns.Add(new DmColumn <int>("StatusValue")); tbl2.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl2.Columns.Add(new DmColumn <DateTime>("Opened")); tbl2.Columns.Add(new DmColumn <DateTime>("Closed")); tbl2.Columns.Add(new DmColumn <int>("CustomerID")); var st = tbl2.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl2.Rows.Add(st); var array = new object[] { Guid.NewGuid(), "Titre 2", "Desc", 1, 2, DateTime.Now, null, 3 }; tbl2.LoadDataRow(array, true); Assert.Equal(2, tbl2.Rows.Count); // Trying with a key Int auto incremented var tbl3 = new DmTable(); var id3 = new DmColumn <Int32>("ServiceTicketID"); id3.IsAutoIncrement = true; tbl3.Columns.Add(id3); var key3 = new DmKey(new DmColumn[] { id3 }); tbl3.PrimaryKey = key3; tbl3.Columns.Add(new DmColumn <string>("Title")); tbl3.Columns.Add(new DmColumn <string>("Description")); tbl3.Columns.Add(new DmColumn <int>("StatusValue")); tbl3.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl3.Columns.Add(new DmColumn <DateTime>("Opened")); tbl3.Columns.Add(new DmColumn <DateTime>("Closed")); tbl3.Columns.Add(new DmColumn <int>("CustomerID")); var st3 = tbl3.NewRow(); st3["Title"] = "Titre AER"; st3["Description"] = "Description 2"; st3["EscalationLevel"] = 1; st3["StatusValue"] = 2; st3["Opened"] = DateTime.Now; st3["Closed"] = null; st3["CustomerID"] = 1; tbl3.Rows.Add(st3); var array3 = new object[] { "Titre 2", "Desc", 1, 2, DateTime.Now, null, 3 }; tbl3.LoadDataRow(array3, true); Assert.Equal(1, tbl3.Rows[0][0]); Assert.Equal(2, tbl3.Rows[1][0]); }
public void DmTable_FindByKey() { var key = Guid.NewGuid(); var st = tbl.NewRow(); st["ServiceTicketID"] = key; st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); var dmRow = tbl.FindByKey(key); Assert.NotNull(dmRow); Assert.Equal(key, dmRow["ServiceTicketID"]); // Multiple Key // Check if the culture / case sensitive works as well with // string in the pkey var tbl2 = new DmTable("ServiceTickets"); tbl2.CaseSensitive = true; var id1 = new DmColumn <Guid>("ServiceTicketID"); var id2 = new DmColumn <int>("CustomerID"); var id3 = new DmColumn <string>("Title"); tbl2.Columns.Add(id1); tbl2.Columns.Add(id2); tbl2.Columns.Add(id3); var pkey = new DmKey(new DmColumn[] { id1, id2, id3 }); tbl2.PrimaryKey = pkey; tbl2.Columns.Add(new DmColumn <string>("Description")); tbl2.Columns.Add(new DmColumn <int>("StatusValue")); tbl2.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl2.Columns.Add(new DmColumn <DateTime>("Opened")); tbl2.Columns.Add(new DmColumn <DateTime>("Closed")); var rowPkeyGuid = Guid.NewGuid(); var row = tbl2.NewRow(); row["ServiceTicketID"] = rowPkeyGuid; row["CustomerID"] = 1; row["Title"] = "Titre AER"; row["Description"] = "Description 2"; row["EscalationLevel"] = 1; row["StatusValue"] = 2; row["Opened"] = DateTime.Now; row["Closed"] = null; tbl2.Rows.Add(row); row = tbl2.NewRow(); row["ServiceTicketID"] = rowPkeyGuid; row["CustomerID"] = 1; row["Title"] = "Titre DE"; row["Description"] = "Description 2"; row["EscalationLevel"] = 3; row["StatusValue"] = 2; row["Opened"] = DateTime.Now; row["Closed"] = null; tbl2.Rows.Add(row); var dmRow2 = tbl2.FindByKey(new object[] { rowPkeyGuid, 1, "Titre aer" }); Assert.Null(dmRow2); tbl2.CaseSensitive = false; var dmRow3 = tbl2.FindByKey(new object[] { rowPkeyGuid, 1, "Titre aer" }); Assert.NotNull(dmRow3); }
public void Serialize_Object() { BaseConverter <Client> serializer = new DmBinaryConverter <Client>(); Guid guid = Guid.NewGuid(); var client = new Client { Id = 1, ClientId = guid, Birthday = new DateTime(1976, 10, 23), FirstName = "sébastien", LastName = "Pertus" }; using (var ms = new MemoryStream()) { serializer.Serialize(client, ms); ms.Position = 0; var client2 = serializer.Deserialize(ms); Assert.NotSame(client, client2); Assert.Equal(1, client2.Id); Assert.Equal(guid, client2.ClientId); Assert.Equal("sébastien", client2.FirstName); } var serializer2 = new DmBinaryConverter <List <Client> >(); // Test List<T> var lst = new List <Client>(); lst.Add(client); lst.Add(client); lst.Add(client); using (var ms = new MemoryStream()) { serializer2.Serialize(lst, ms); ms.Position = 0; var lst2 = serializer2.Deserialize(ms); Assert.NotSame(lst, lst2); Assert.Equal(3, lst2.Count); } var serializer3 = new DmBinaryConverter <NullableClient>(); // test nullable var client3 = new NullableClient { Id = null, ClientId = null, Birthday = null, FirstName = "~#'\"é{[", LastName = null, Money = null }; using (var ms = new MemoryStream()) { serializer3.Serialize(client3, ms); ms.Position = 0; var client4 = serializer3.Deserialize(ms); Assert.NotSame(client3, client4); Assert.Null(client4.Id); Assert.Null(client4.ClientId); Assert.Null(client4.Birthday); Assert.Null(client4.LastName); Assert.Null(client4.Money); Assert.Equal("~#'\"é{[", client4.FirstName); } var serializer4 = new DmBinaryConverter <DmSetSurrogate>(); // Test on datatable var ds = new DmSet("Fabrikam"); var tbl = new DmTable("ServiceTickets"); var id = new DmColumn <Guid>("ServiceTicketID"); tbl.Columns.Add(id); var key = new DmKey(new DmColumn[] { id }); tbl.PrimaryKey = key; tbl.Columns.Add(new DmColumn <string>("Title")); tbl.Columns.Add(new DmColumn <string>("Description")); tbl.Columns.Add(new DmColumn <int>("StatusValue")); tbl.Columns.Add(new DmColumn <int>("EscalationLevel")); tbl.Columns.Add(new DmColumn <DateTime>("Opened")); tbl.Columns.Add(new DmColumn <DateTime>("Closed")); tbl.Columns.Add(new DmColumn <int>("CustomerID")); var st = tbl.NewRow(); st["ServiceTicketID"] = Guid.NewGuid(); st["Title"] = "Titre AER"; st["Description"] = "Description 2"; st["EscalationLevel"] = 1; st["StatusValue"] = 2; st["Opened"] = DateTime.Now; st["Closed"] = null; st["CustomerID"] = 1; tbl.Rows.Add(st); ds.Tables.Add(tbl); var dsSurrogate = new DmSetSurrogate(ds); using (var ms = new MemoryStream()) { serializer4.Serialize(dsSurrogate, ms); ms.Position = 0; var dsSurrogate2 = serializer4.Deserialize(ms); var ds2 = dsSurrogate2.ConvertToDmSet(ds); Assert.NotSame(ds, ds2); Assert.Equal(ds.CaseSensitive, ds2.CaseSensitive); Assert.Equal(ds.Culture, ds2.Culture); Assert.Equal(ds.DmSetName, ds2.DmSetName); Assert.Equal(ds.Tables.Count, ds2.Tables.Count); Assert.Equal(ds.Tables[0].Columns.Count, ds2.Tables[0].Columns.Count); Assert.Equal(ds.Tables[0].Rows.Count, ds2.Tables[0].Rows.Count); Assert.Equal(ds.Tables[0].PrimaryKey.Columns.Length, ds2.Tables[0].PrimaryKey.Columns.Length); } }