Пример #1
0
        public void RecordsTest()
        {
            var columnNames = "'Product','Price','DateStocked'";
            var data        = "'Pepsi','4.50','2010-05-04'\n'Coke','3.00','2010-09-22'\n'Cheetos','7.25','2009-01-13'";

            var csv2xmlFile = TestEnvironment.DataPath + "csv2xml.csv";

            File.WriteAllText(csv2xmlFile, columnNames + "\n" + data);

            var csv2xml = new CsvToXml(csv2xmlFile, true);

            csv2xml.TextQualifier = '\'';
            csv2xml.Convert();

            Assert.AreEqual(3, csv2xml.Records.Count());

            var records = from rec in csv2xml.Records
                          where (decimal)rec.Element("Price") > 3.5m
                          orderby(string) rec.Element("Product")
                          select rec;

            Assert.AreEqual(2, records.Count());
            Assert.AreEqual("Cheetos", (string)records.ElementAt(0).Element("Product"));
            Assert.AreEqual("Pepsi", (string)records.ElementAt(1).Element("Product"));

            records = from rec in csv2xml.Records
                      where Convert.ToDateTime((string)rec.Element("DateStocked")) > new DateTime(2010, 9, 1)
                      orderby(string) rec.Element("Product")
                      select rec;

            Assert.AreEqual(1, records.Count());
            Assert.AreEqual("Coke", (string)records.ElementAt(0).Element("Product"));
        }
Пример #2
0
        public void Convert2Test()
        {
            var columnNames = "Product;Price;DateStocked;";
            var data        = "Pepsi;4.50;2010-05-04;\nCoke;3.00;2010-09-22;\nCheetos;7.25;2009-01-13;";

            var csvWithColumnNamesFile = TestEnvironment.DataPath + "csv-columnNames.csv";
            var csvFile = TestEnvironment.DataPath + "csv.csv";

            File.WriteAllText(csvWithColumnNamesFile, columnNames + "\n" + data);
            File.WriteAllText(csvFile, data);

            string xmlHeader = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";

            string xmlWithColumnNames = xmlHeader +
                                        @"<Records>
	<Record>
		<Product>Pepsi</Product>
		<Price>4.50</Price>
		<DateStocked>2010-05-04</DateStocked>
	</Record>
	<Record>
		<Product>Coke</Product>
		<Price>3.00</Price>
		<DateStocked>2010-09-22</DateStocked>
	</Record>
	<Record>
		<Product>Cheetos</Product>
		<Price>7.25</Price>
		<DateStocked>2009-01-13</DateStocked>
	</Record>
</Records>";

            var csvWithColumnNames = new CsvToXml(csvWithColumnNamesFile);

            csvWithColumnNames.RecordDelimiter = ';'; csvWithColumnNames.TextQualifier = null;
            csvWithColumnNames.HasColumnNames  = true;
            csvWithColumnNames.Convert();

            string actualXmlWithColumnNames = csvWithColumnNames.XmlString;

            Assert.AreEqual(xmlWithColumnNames, actualXmlWithColumnNames);
        }
Пример #3
0
        public void ConvertTest()
        {
            var columnNames = "'Product','Price','DateStocked'";
            var data        = "'Pepsi','4.50','2010-05-04'\n'Coke','3.00','2010-09-22'\n'Cheetos','7.25','2009-01-13'";

            var csvWithColumnNamesFile = TestEnvironment.DataPath + "csv-columnNames.csv";
            var csvFile = TestEnvironment.DataPath + "csv.csv";

            File.WriteAllText(csvWithColumnNamesFile, columnNames + "\n" + data);
            File.WriteAllText(csvFile, data);

            string xmlHeader = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";

            string xmlWithColumnNames = xmlHeader +
                                        @"<Records>
	<Record>
		<Product>Pepsi</Product>
		<Price>4.50</Price>
		<DateStocked>2010-05-04</DateStocked>
	</Record>
	<Record>
		<Product>Coke</Product>
		<Price>3.00</Price>
		<DateStocked>2010-09-22</DateStocked>
	</Record>
	<Record>
		<Product>Cheetos</Product>
		<Price>7.25</Price>
		<DateStocked>2009-01-13</DateStocked>
	</Record>
</Records>";

            var csvWithColumnNames = new CsvToXml(csvWithColumnNamesFile);

            csvWithColumnNames.RecordDelimiter = ','; csvWithColumnNames.TextQualifier = '\'';
            csvWithColumnNames.HasColumnNames  = true;
            csvWithColumnNames.Convert();

            string actualXmlWithColumnNames = csvWithColumnNames.XmlString;

            Assert.AreEqual(xmlWithColumnNames, actualXmlWithColumnNames);

            string xml = xmlHeader +
                         @"<Records>
	<Record>
		<Column1>Pepsi</Column1>
		<Column2>4.50</Column2>
		<Column3>2010-05-04</Column3>
	</Record>
	<Record>
		<Column1>Coke</Column1>
		<Column2>3.00</Column2>
		<Column3>2010-09-22</Column3>
	</Record>
	<Record>
		<Column1>Cheetos</Column1>
		<Column2>7.25</Column2>
		<Column3>2009-01-13</Column3>
	</Record>
</Records>";

            var csv = new CsvToXml(csvFile);

            csv.RecordDelimiter = ','; csv.TextQualifier = '\'';
            csv.HasColumnNames  = false;
            csv.Convert();

            var actualXml = csv.XmlString;

            Assert.AreEqual(xml, actualXml);
        }