Пример #1
0
        public async Task Uses_custom_xml_field_names_when_supplied()
        {
            var xmlOptions = new XmlConversionOptions
            {
                RootNodeName = "clients",
                RowNodeName  = "client"
            };

            var options = new StructuredDataConversionOptions
            {
                InputData = new StructuredData
                {
                    Format   = StructuredDataFormat.Csv,
                    Contents = await File.ReadAllTextAsync("./multi-row.csv")
                },
                TargetFormat = StructuredDataFormat.Xml,
                XmlOptions   = xmlOptions
            };

            var converter = new StructuredDataConverter(
                new StructuredDataInterpreterFactory(),
                new StructuredDataWriterFactory());

            var result = converter.Convert(options);

            Assert.Equal(StructuredDataFormat.Xml, result.Format);
            Assert.Equal(await File.ReadAllTextAsync("./expected-custom-fields.xml"), result.Contents);
        }
 public ConversionOptionsBuilder()
 {
     _options = new StructuredDataConversionOptions
     {
         InputData  = new StructuredData(),
         XmlOptions = new XmlConversionOptions()
     };
 }
        public IStructuredDataWriter GetWriter(
            StructuredDataConversionOptions conversionOptions)
        {
            switch (conversionOptions.TargetFormat)
            {
            case StructuredDataFormat.Json:
                return(new JsonDataWriter());

            case StructuredDataFormat.Xml:
                return(new XmlDataWriter(conversionOptions.XmlOptions));

            default:
                throw new ArgumentException(
                          $"Writing to the format ${conversionOptions.TargetFormat} is not supported.",
                          nameof(conversionOptions));
            }
        }
Пример #4
0
        public async Task Converts_CSV_to_expected_xml(string inputFilePath, string expectedFilePath)
        {
            var options = new StructuredDataConversionOptions
            {
                InputData = new StructuredData
                {
                    Format   = StructuredDataFormat.Csv,
                    Contents = await File.ReadAllTextAsync(inputFilePath)
                },
                TargetFormat = StructuredDataFormat.Xml
            };

            var converter = new StructuredDataConverter(
                new StructuredDataInterpreterFactory(),
                new StructuredDataWriterFactory());

            var result = converter.Convert(options);

            Assert.Equal(StructuredDataFormat.Xml, result.Format);
            Assert.Equal(await File.ReadAllTextAsync(expectedFilePath), result.Contents);
        }