5 // Atsushi Enomoto <atsushi@ximian.com>
15 using NUnit.Framework;
17 namespace MonoTests.System.Data
19 public class DataSetAssertion : Assertion
21 public void AssertDataSet (string label, DataSet ds, string name, int tableCount, int relCount)
23 AssertEquals (label + ".DataSetName", name, ds.DataSetName);
24 AssertEquals (label + ".TableCount", tableCount, ds.Tables.Count);
26 AssertEquals (label + ".RelationCount", relCount, ds.Relations.Count);
29 public void AssertDataTable (string label, DataTable dt, string name, int columnCount, int rowCount, int parentRelationCount, int childRelationCount)
31 AssertEquals (label + ".TableName", name, dt.TableName);
32 AssertEquals (label + ".ColumnCount", columnCount, dt.Columns.Count);
33 AssertEquals (label + ".RowCount", rowCount, dt.Rows.Count);
34 AssertEquals (label + ".ParentRelCount", parentRelationCount, dt.ParentRelations.Count);
35 AssertEquals (label + ".ChildRelCount", childRelationCount, dt.ChildRelations.Count);
38 public void AssertReadXml (DataSet ds, string label, string xml, XmlReadMode readMode, XmlReadMode resultMode, string datasetName, int tableCount)
40 AssertReadXml (ds, label, xml, readMode, resultMode, datasetName, tableCount, ReadState.EndOfFile);
43 // a bit detailed version
44 public void AssertReadXml (DataSet ds, string label, string xml, XmlReadMode readMode, XmlReadMode resultMode, string datasetName, int tableCount, ReadState state)
46 XmlReader xtr = new XmlTextReader (xml, XmlNodeType.Element, null);
47 AssertEquals (label + ".return", resultMode, ds.ReadXml (xtr, readMode));
48 AssertDataSet (label + ".dataset", ds, datasetName, tableCount, -1);
49 AssertEquals (label + ".readstate", state, xtr.ReadState);
52 public void AssertDataRelation (string label, DataRelation rel, string name, bool nested,
53 string [] parentColNames, string [] childColNames,
54 bool existsUK, bool existsFK)
56 AssertEquals (label + ".Name", name, rel.RelationName);
57 AssertEquals (label + ".Nested", nested, rel.Nested);
58 for (int i = 0; i < parentColNames.Length; i++)
59 AssertEquals (label + ".parentColumn_" + i, parentColNames [i], rel.ParentColumns [i].ColumnName);
60 AssertEquals (label + ".ParentColCount", parentColNames.Length, rel.ParentColumns.Length);
61 for (int i = 0; i < childColNames.Length; i++)
62 AssertEquals (label + ".childColumn_" + i, childColNames [i], rel.ChildColumns [i].ColumnName);
63 AssertEquals (label + ".ChildColCount", childColNames.Length, rel.ChildColumns.Length);
65 AssertNotNull (label + ".uniqKeyExists", rel.ParentKeyConstraint);
67 AssertNull (label + ".uniqKeyNotExists", rel.ParentKeyConstraint);
69 AssertNotNull (label + ".fkExists", rel.ChildKeyConstraint);
71 AssertNull (label + ".fkNotExists", rel.ChildKeyConstraint);
74 public void AssertUniqueConstraint (string label, UniqueConstraint uc,
75 string name, bool isPrimaryKey, string [] colNames)
77 AssertEquals (label + ".name", name, uc.ConstraintName);
78 AssertEquals (label + ".pkey", isPrimaryKey, uc.IsPrimaryKey);
79 for (int i = 0; i < colNames.Length; i++)
80 AssertEquals (label + ".column_" + i, colNames [i], uc.Columns [i].ColumnName);
81 AssertEquals (label + ".colCount", colNames.Length, uc.Columns.Length);
84 public void AssertForeignKeyConstraint (string label,
85 ForeignKeyConstraint fk, string name,
86 AcceptRejectRule acceptRejectRule, Rule delRule, Rule updateRule,
87 string [] colNames, string [] relColNames)
89 AssertEquals (label + ".name", name, fk.ConstraintName);
90 AssertEquals (label + ".acceptRejectRule", acceptRejectRule, fk.AcceptRejectRule);
91 AssertEquals (label + ".delRule", delRule, fk.DeleteRule);
92 AssertEquals (label + ".updateRule", updateRule, fk.UpdateRule);
93 for (int i = 0; i < colNames.Length; i++)
94 AssertEquals (label + ".column_" + i, colNames [i], fk.Columns [i].ColumnName);
95 AssertEquals (label + ".colCount", colNames.Length, fk.Columns.Length);
96 for (int i = 0; i < relColNames.Length; i++)
97 AssertEquals (label + ".relatedColumn_" + i, relColNames [i], fk.RelatedColumns [i].ColumnName);
98 AssertEquals (label + ".relatedColCount", relColNames.Length, fk.RelatedColumns.Length);
101 public void AssertDataColumn (string label, DataColumn col,
\r
102 string colName, bool allowDBNull,
\r
103 bool autoIncr, int autoIncrSeed, int autoIncrStep,
\r
104 string caption, MappingType colMap,
\r
105 Type type, object defaultValue, string expression,
\r
106 int maxLength, string ns, int ordinal, string prefix,
\r
107 bool readOnly, bool unique)
\r
109 AssertEquals (label + "ColumnName: " , colName, col.ColumnName);
\r
110 AssertEquals (label + "AllowDBNull? " , allowDBNull, col.AllowDBNull);
\r
111 AssertEquals (label + "AutoIncrement? " , autoIncr, col.AutoIncrement);
\r
112 AssertEquals (label + " Seed: " , autoIncrSeed, col.AutoIncrementSeed);
\r
113 AssertEquals (label + " Step: " , autoIncrStep, col.AutoIncrementStep);
\r
114 AssertEquals (label + "Caption " , caption, col.Caption);
\r
115 AssertEquals (label + "Mapping: " , colMap, col.ColumnMapping);
\r
116 AssertEquals (label + "Type: " , type, col.DataType);
\r
117 AssertEquals (label + "DefaultValue: " , defaultValue, col.DefaultValue);
\r
118 AssertEquals (label + "Expression: " , expression, col.Expression);
\r
119 AssertEquals (label + "MaxLength: " , maxLength, col.MaxLength);
\r
120 AssertEquals (label + "Namespace: " , ns, col.Namespace);
\r
121 AssertEquals (label + "Ordinal: " , ordinal, col.Ordinal);
\r
122 AssertEquals (label + "Prefix: " , prefix, col.Prefix);
\r
123 AssertEquals (label + "ReadOnly: " , readOnly, col.ReadOnly);
\r
124 AssertEquals (label + "Unique: " , unique, col.Unique);
\r