コード例 #1
0
        public void FromXml_WrongContentFormat()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);

            List<string> xmlContent = new List<string>()
            {
                "<DynamicTable>" + Environment.NewLine,
                "  <Rowsssssssssss>" + Environment.NewLine,
                "    <Rowwwww>" + Environment.NewLine,
                "      <FirstName value=\"Hans\" />" + Environment.NewLine,
                "      <LastName value=\"Mueller\" />" + Environment.NewLine,
                "      <Age value=\"30\" />" + Environment.NewLine,
                "      <Street value=\"\" />" + Environment.NewLine,
                "    </Rowwwww>" + Environment.NewLine,
                "    <Rowwwww>" + Environment.NewLine,
                "      <FirstName value=\"\" />" + Environment.NewLine,
                "      <LastName value=\"Meier\" />" + Environment.NewLine,
                "      <Age value=\"0\" />" + Environment.NewLine,
                "      <Street value=\"Main street\" />" + Environment.NewLine,
                "    </Rowwwww>" + Environment.NewLine,
                "  </Rowsssssssssss>" + Environment.NewLine,
                "</DynamicTable>"
            };

            //columns
            table.PreDefineColumns(
                new List<IDynamicTableColumn>()
                {
                    new DynamicTableColumn<string>("FirstName"),
                    new DynamicTableColumn<string>("LastName"),
                    new DynamicTableColumn<int>("Age", -1),
                    new DynamicTableColumn<string>("Street"),
                });

            //import
            table.FromXml(xmlContent);

            //compare
            Assert.AreEqual(0, table.Rows.Count);
        }
コード例 #2
0
        public void FromXml_WrongXMLFormat()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);

            List<string> xmlContent = new List<string>()
            {
                "<DynamicTable>" + Environment.NewLine,
                "  <Rows>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"Hans\" />" + Environment.NewLine,
                "      <LastName value=\"Mueller\" />" + Environment.NewLine,
                "      <Age value=\"30\" />" + Environment.NewLine,
                "      <Street value=\"\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"\" />" + Environment.NewLine,
                "      <LastName value=\"Meier\" />" + Environment.NewLine,
                "      <Age value=\"0\" />" + Environment.NewLine,
                "      <Street value=\"Main street\" />"
            };

            //columns
            table.PreDefineColumns(
                new List<IDynamicTableColumn>()
                {
                    new DynamicTableColumn<string>("FirstName"),
                    new DynamicTableColumn<string>("LastName"),
                    new DynamicTableColumn<int>("Age", -1),
                    new DynamicTableColumn<string>("Street"),
                });

            //import
            try
            {
                table.FromXml(xmlContent);
                Assert.Fail();
            }
            catch (XmlException)
            {
            }
        }
コード例 #3
0
        public void FromXml_Standard()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);
            dynamic row;

            List<string> xmlContent = new List<string>()
            {
                "<DynamicTable>" + Environment.NewLine,
                "  <Rows>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"Hans\" />" + Environment.NewLine,
                "      <LastName value=\"Mueller\" />" + Environment.NewLine,
                "      <Age value=\"30\" />" + Environment.NewLine,
                "      <Street value=\"\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"\" />" + Environment.NewLine,
                "      <LastName value=\"Meier\" />" + Environment.NewLine,
                "      <Age value=\"0\" />" + Environment.NewLine,
                "      <Street value=\"Main street\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "  </Rows>" + Environment.NewLine,
                "</DynamicTable>"
            };

            //columns
            table.PreDefineColumns(
                new List<IDynamicTableColumn>()
                {
                    new DynamicTableColumn<string>("FirstName"),
                    new DynamicTableColumn<string>("LastName"),
                    new DynamicTableColumn<int>("Age"),
                    new DynamicTableColumn<string>("Street"),
                });

            //import
            table.FromXml(xmlContent);

            //compare
            Assert.AreEqual(2, table.Rows.Count);

            row = table.Rows[0];
            Assert.AreEqual("Hans", row.FirstName);
            Assert.AreEqual("Mueller", row.LastName);
            Assert.AreEqual(30, row.Age);
            Assert.AreEqual("", row.Street);

            row = table.Rows[1];
            Assert.AreEqual("", row.FirstName);
            Assert.AreEqual("Meier", row.LastName);
            Assert.AreEqual(0, row.Age);
            Assert.AreEqual("Main street", row.Street);
        }
コード例 #4
0
        public void FromXml_Null()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);

            List<string> csvContent = new List<string>();

            //columns
            table.PreDefineColumns(
                new List<IDynamicTableColumn>()
                {
                    new DynamicTableColumn<string>("FirstName"),
                    new DynamicTableColumn<string>("LastName"),
                    new DynamicTableColumn<int>("Age", -1),
                    new DynamicTableColumn<string>("Street"),
                });

            //import
            table.FromXml(null);

            //compare
            Assert.AreEqual(0, table.Rows.Count);
        }
コード例 #5
0
        public void FromXml_NoColumns()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);

            List<string> xmlContent = new List<string>()
            {
                "<DynamicTable>" + Environment.NewLine,
                "  <Rows>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"Hans\" />" + Environment.NewLine,
                "      <LastName value=\"Mueller\" />" + Environment.NewLine,
                "      <Age value=\"30\" />" + Environment.NewLine,
                "      <Street value=\"\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"\" />" + Environment.NewLine,
                "      <LastName value=\"Meier\" />" + Environment.NewLine,
                "      <Age value=\"0\" />" + Environment.NewLine,
                "      <Street value=\"Main street\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "  </Rows>" + Environment.NewLine,
                "</DynamicTable>"
            };

            //import
            try
            {
                table.FromXml(xmlContent);
                Assert.Fail();
            }
            catch (NotSupportedException)
            {
            }
        }
コード例 #6
0
        public void FromXml_AlreadyContainsRows()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);

            List<string> xmlContent = new List<string>()
            {
                "<DynamicTable>" + Environment.NewLine,
                "  <Rows>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"Hans\" />" + Environment.NewLine,
                "      <LastName value=\"Mueller\" />" + Environment.NewLine,
                "      <Age value=\"30\" />" + Environment.NewLine,
                "      <Street value=\"\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "    <Row>" + Environment.NewLine,
                "      <FirstName value=\"\" />" + Environment.NewLine,
                "      <LastName value=\"Meier\" />" + Environment.NewLine,
                "      <Age value=\"0\" />" + Environment.NewLine,
                "      <Street value=\"Main street\" />" + Environment.NewLine,
                "    </Row>" + Environment.NewLine,
                "  </Rows>" + Environment.NewLine,
                "</DynamicTable>"
            };

            //columns
            table.PreDefineColumns(
                new List<IDynamicTableColumn>()
                {
                    new DynamicTableColumn<string>("FirstName"),
                    new DynamicTableColumn<string>("LastName"),
                    new DynamicTableColumn<int>("Age", -1),
                    new DynamicTableColumn<string>("Street"),
                });

            //import
            table.FromXml(xmlContent);

            //compare
            Assert.AreEqual(2, table.Rows.Count);

            //import again
            try
            {
                table.FromXml(xmlContent);
                Assert.Fail();
            }
            catch (NotSupportedException)
            {
            }
        }
コード例 #7
0
        public void ExportAndImport_XML()
        {
            IDynamicTable table = new DynamicTable(DynamicTableType.Expandable);
            dynamic row;
            string xmlExport;

            string fileName = _assemblyDirectory + @"\CsvTest.xml";

            //add values
            row = new ExpandoObject();
            row.FirstName = "Hans";
            row.LastName = "Mueller";
            row.Age = 30;
            row.TimeStamp = new DateTime(2012, 12, 24, 1, 2, 3);
            table.AddRow(row);

            row = new ExpandoObject();
            row.LastName = "Meier";
            row.Street = "Main street";
            table.AddRow(row);

            //compare
            Assert.AreEqual(2, table.Rows.Count);
            Assert.AreEqual(5, table.Columns.Count);

            //export
            xmlExport = table.AsXml();

            using (StreamWriter writer = new StreamWriter(fileName))
            {
                writer.Write(xmlExport);
            }

            //remove rows
            table.RemoveAllRows();
            Assert.AreEqual(0, table.Rows.Count);
            Assert.AreEqual(5, table.Columns.Count);

            //import
            using (StreamReader reader = new StreamReader(fileName))
            {
                table.FromXml(ReadFile(reader));
            }

            //compare
            row = table.Rows[0];
            Assert.AreEqual("Hans", row.FirstName);
            Assert.AreEqual("Mueller", row.LastName);
            Assert.AreEqual(30, row.Age);

            Assert.AreEqual(2012, row.TimeStamp.Year);
            Assert.AreEqual(12, row.TimeStamp.Month);
            Assert.AreEqual(24, row.TimeStamp.Day);
            Assert.AreEqual(1, row.TimeStamp.Hour);
            Assert.AreEqual(2, row.TimeStamp.Minute);
            Assert.AreEqual(3, row.TimeStamp.Second);

            Assert.AreEqual("", row.Street);

            row = table.Rows[1];
            Assert.AreEqual("", row.FirstName);
            Assert.AreEqual("Meier", row.LastName);
            Assert.AreEqual(0, row.Age);
            Assert.AreEqual(0, row.TimeStamp.Ticks);
            Assert.AreEqual("Main street", row.Street);
        }