예제 #1
0
        public void CanReadXmlForResultSet()
        {
            var xml = new StringBuilder()
                      .Append("<ResultSet>")
                      .Append("<Schema>")
                      .Append("<Columns>")
                      .Append("<Column name=\"cola\" dbType=\"nvarchar\" clrType=\"System.String\" />")
                      .Append("<Column name=\"colb\" dbType=\"nvarchar\" clrType=\"System.String\" />")
                      .Append("</Columns>")
                      .Append("</Schema>")
                      .Append("<Rows>")
                      .Append("<Row><cola>test</cola></Row>")
                      .Append("<Row><colb>test</colb></Row>")
                      .Append("</Rows>")
                      .Append("</ResultSet>");

            using (var r = new TestXmlReader(xml.ToString()))
            {
                var rs = new ResultSetSerializer().Deserialize(r.Reader);

                Assert.IsNotNull(rs);
                Assert.IsNotNull(rs.Schema);
                Assert.IsNotNull(rs.Schema.Columns);
                Assert.AreEqual(2, rs.Schema.Columns.Count);
                Assert.IsNotNull(rs.Rows);
                Assert.AreEqual(2, rs.Rows.Count);
            }
        }
예제 #2
0
        public void CanWriteAndReadResultSetXmlForResultSetWith2ColumnsAnd2Rows()
        {
            var rs = new ResultSet();

            rs.Schema.Columns.Add(new Column {
                Name = "Name", DbType = "nvarchar", ClrType = typeof(string)
            });
            rs.Schema.Columns.Add(new Column {
                Name = "Age", DbType = "int", ClrType = typeof(int)
            });
            rs.Rows.Add(new ResultSetRow());
            rs.Rows.Add(new ResultSetRow());

            rs.Rows[0]["Name"] = "tim";
            rs.Rows[0]["Age"]  = 14;
            rs.Rows[1]["Name"] = "Smith";
            rs.Rows[1]["Age"]  = 15;

            using (var w = new TestXmlWriter())
            {
                new ResultSetSerializer().Serialize(w.Writer, rs);

                using (var r = new TestXmlReader(w.Xml))
                {
                    var rs2 = new ResultSetSerializer().Deserialize(r.Reader);

                    Assert.IsNotNull(rs2);
                    Assert.IsNotNull(rs2.Schema);
                    Assert.IsNotNull(rs2.Schema.Columns);
                    Assert.AreEqual(2, rs2.Schema.Columns.Count);
                    Assert.IsNotNull(rs2.Rows);
                    Assert.AreEqual(2, rs2.Rows.Count);
                }
            }
        }
예제 #3
0
        public void CanWriteAndReadResultSetXmlForEmptyResultSet()
        {
            using (var w = new TestXmlWriter())
            {
                new ResultSetSerializer().Serialize(w.Writer, new ResultSet());

                using (var r = new TestXmlReader(w.Xml))
                {
                    var rs = new ResultSetSerializer().Deserialize(r.Reader);

                    Assert.IsNotNull(rs);
                    Assert.IsNotNull(rs.Schema);
                    Assert.IsNotNull(rs.Schema.Columns);
                    Assert.AreEqual(0, rs.Schema.Columns.Count);
                    Assert.IsNotNull(rs.Rows);
                    Assert.AreEqual(0, rs.Rows.Count);
                }
            }
        }
예제 #4
0
        public void CanReadXmlForEmptyResultSet()
        {
            var xml = new StringBuilder()
                      .Append("<ResultSet>")
                      .Append("<Schema>")
                      .Append("<Columns/>")
                      .Append("</Schema>")
                      .Append("<Rows/>")
                      .Append("</ResultSet>");

            using (var r = new TestXmlReader(xml.ToString()))
            {
                var rs = new ResultSetSerializer().Deserialize(r.Reader);

                Assert.IsNotNull(rs);
                Assert.IsNotNull(rs.Schema);
                Assert.IsNotNull(rs.Schema.Columns);
                Assert.AreEqual(0, rs.Schema.Columns.Count);
                Assert.IsNotNull(rs.Rows);
                Assert.AreEqual(0, rs.Rows.Count);
            }
        }