コード例 #1
0
        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());
            }
        }
コード例 #2
0
        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());
            }
        }
コード例 #3
0
        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());
                }
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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());
            }
        }