public void ReadXmlAddsNullValuesForNotDefinedRowValuesInXml() { var xml = "<Row><colb>value2</colb></Row>"; var schema = new ResultSetSchema(); schema.Columns.Add(new Column { Name = "cola", ClrType = typeof(int) }); schema.Columns.Add(new Column { Name = "colb", ClrType = typeof(string) }); using (var r = TestXmlReader.Create(xml)) { var row = new ResultSetRowSerializer().Deserialize(r.Reader, new ResultSetRowSerializerContext { Schema = schema }); Assert.IsNotNull(row); Assert.AreEqual(2, row.Count); Assert.AreEqual(DBNull.Value, row["cola"]); Assert.AreSame(DBNull.Value.GetType(), row["cola"].GetType()); Assert.AreEqual("value2", row["colb"]); Assert.AreSame(typeof(string), row["colb"].GetType()); } }
public void CanReadRowWith2Columns() { var xml = "<Row><cola>11</cola><colb>value2</colb></Row>"; var schema = new ResultSetSchema(); schema.Columns.Add(new Column { Name = "cola", ClrType = typeof(int) }); schema.Columns.Add(new Column { Name = "colb", ClrType = typeof(string) }); using (var r = TestXmlReader.Create(xml)) { var row = new ResultSetRowSerializer().Deserialize(r.Reader, new ResultSetRowSerializerContext { Schema = schema }); Assert.IsNotNull(row); Assert.AreEqual(2, row.Count); Assert.AreEqual(11, row["cola"]); Assert.AreSame(typeof(int), row["cola"].GetType()); Assert.AreEqual("value2", row["colb"]); Assert.AreSame(typeof(string), row["colb"].GetType()); } }
public void CanWriteAndReadRow() { var schema = new ResultSetSchema(); schema.Columns.Add(new Column { Name = "cola", ClrType = typeof(int), DbType = "" }); schema.Columns.Add(new Column { Name = "colb", ClrType = typeof(string), DbType = "" }); schema.Columns.Add(new Column { Name = "colc", ClrType = typeof(DateTime), DbType = "" }); schema.Columns.Add(new Column { Name = "cold", ClrType = typeof(int), DbType = "" }); schema.Columns.Add(new Column { Name = "cole", ClrType = typeof(int), DbType = "" }); var row = new ResultSetRow(); row["cola"] = 12; row["colb"] = "hallo"; row["colc"] = new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123); row["cold"] = null; row["cole"] = DBNull.Value; using (var writer = new TestXmlWriter()) { new ResultSetRowSerializer().Serialize(writer.Writer, row, new ResultSetRowSerializerContext { Schema = schema }); using (var r = new TestXmlReader(writer.Xml)) { var row2 = new ResultSetRowSerializer().Deserialize(r.Reader, new ResultSetRowSerializerContext { Schema = schema }); Assert.IsNotNull(row2); Assert.AreEqual(5, row2.Count); Assert.AreEqual(12, row2["cola"]); Assert.AreSame(typeof(int), row2["cola"].GetType()); Assert.AreEqual("hallo", row2["colb"]); Assert.AreSame(typeof(string), row2["colb"].GetType()); Assert.AreEqual(new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123), row2["colc"]); Assert.AreSame(typeof(DateTime), row2["colc"].GetType()); Assert.AreEqual(DBNull.Value, row2["cold"]); Assert.AreSame(DBNull.Value.GetType(), row2["cold"].GetType()); Assert.AreEqual(DBNull.Value, row2["cole"]); Assert.AreSame(DBNull.Value.GetType(), row2["cole"].GetType()); } } }
public void CanReadEmptyRow() { using (var r = TestXmlReader.Create("<Row />")) { var row = new ResultSetRowSerializer().Deserialize(r.Reader, new ResultSetRowSerializerContext { Schema = new ResultSetSchema() }); Assert.IsNotNull(row); Assert.AreEqual(0, row.Count); } }
public void CanReadRowWith4ColumnsAnd1NullValue() { var xml = "<Row><cola>12</cola><colb>hallo</colb><colc>2011-09-14T18:58:44.123</colc><cold>13.66666</cold></Row>"; var schema = new ResultSetSchema(); schema.Columns.Add(new Column { Name = "cola", ClrType = typeof(int) }); schema.Columns.Add(new Column { Name = "colb", ClrType = typeof(string) }); schema.Columns.Add(new Column { Name = "colc", ClrType = typeof(DateTime) }); schema.Columns.Add(new Column { Name = "cold", ClrType = typeof(decimal) }); schema.Columns.Add(new Column { Name = "cole", ClrType = typeof(float) }); using (var r = TestXmlReader.Create(xml)) { var row = new ResultSetRowSerializer().Deserialize(r.Reader, new ResultSetRowSerializerContext { Schema = schema }); Assert.IsNotNull(row); Assert.AreEqual(5, row.Count); Assert.AreEqual(12, row["cola"]); Assert.AreSame(typeof(int), row["cola"].GetType()); Assert.AreEqual("hallo", row["colb"]); Assert.AreSame(typeof(string), row["colb"].GetType()); Assert.AreEqual(new DateTime(2011, 9, 14, 18, 58, 44).AddMilliseconds(123), row["colc"]); Assert.AreSame(typeof(DateTime), row["colc"].GetType()); Assert.AreEqual(13.66666m, row["cold"]); Assert.AreSame(typeof(decimal), row["cold"].GetType()); Assert.AreEqual(DBNull.Value, row["cole"]); Assert.AreSame(DBNull.Value.GetType(), row["cole"].GetType()); } }