public void Write()
        {
            var descriptor = new DelimitedRecordDescriptor("|");

            descriptor.AddField("Name")
            .SetTrimMode(TrimMode.None)
            .SetAlignMode(AlignMode.Left)
            ;

            descriptor.AddField("BirthDate")
            .SetType(typeof(DateTime))
            .SetConverterFormat("yyyyMMdd")
            ;
            var originalContent = "HARLEN      |19840330";
            var engine          = new DelimitedFluentEngine(descriptor);
            var items           = engine.ReadString("HARLEN      |19840330");

            Assert.IsNotNull(items);
            Assert.AreEqual(1, items.Length);

            var content = engine.WriteString(items);

            Assert.IsNotNull(content);
            Assert.AreNotEqual(string.Empty, content);
            Assert.AreEqual(originalContent, content.Replace("\r\n", string.Empty));
        }
Ejemplo n.º 2
0
        public void Write_Array_Record()
        {
            var descriptor = new DelimitedRecordDescriptor("|");

            descriptor.AddField("Name")
            .SetTrimMode(TrimMode.Both)
            .SetAlignMode(AlignMode.Left)
            ;

            descriptor.AddField("BirthDate")
            .SetConverter(typeof(DateTimeConverter))
            .SetConverterFormat("yyyyMMdd")
            ;

            var arrayDescriptor = descriptor.AddArray("Items")
                                  .SetArrayDelimiter("#")
                                  .SetArrayItemBegin("{")
                                  .SetArrayItemEnd("}");

            arrayDescriptor.AddField("ItemName")
            .SetTrimMode(TrimMode.Both);

            arrayDescriptor.AddField("ItemPrice")
            .SetType(typeof(decimal))
            .SetTrimMode(TrimMode.Both);

            var engine  = new DelimitedFluentEngine(descriptor);
            var content = "Harlen|19840330|{Item1#2.00}{Item2#3.59}|Renato Polatti";
            var items   = engine.ReadString(content);

            var writenContent = engine.WriteString(items);

            Assert.AreEqual(content, writenContent);
        }
        public void Two_Record_Types()
        {
            var clientDescriptor = new DelimitedRecordDescriptor("|");

            clientDescriptor
            .AddField("RecordType")
            .SetTrimMode(TrimMode.Both);

            clientDescriptor
            .AddField("Name")
            .SetTrimMode(TrimMode.Both);

            clientDescriptor
            .AddField("BirthDate")
            .SetTrimMode(TrimMode.Both)
            .SetConverter(typeof(DateTimeConverter))
            .SetConverterFormat("yyyyMMdd");

            var addressDescriptor = new DelimitedRecordDescriptor("|");

            addressDescriptor
            .AddField("RecordType")
            .SetTrimMode(TrimMode.Both);

            addressDescriptor
            .AddField("Street")
            .SetTrimMode(TrimMode.Both);

            addressDescriptor
            .AddField("Number")
            .SetTrimMode(TrimMode.Both)
            .SetType(typeof(int));

            var engine = new DelimitedFluentEngine(new List <RecordItem>
            {
                new RecordItem
                {
                    Descriptor         = clientDescriptor,
                    Name               = "Client",
                    RecordTypeProperty = "RecordType",
                    RegexPattern       = "^(CLI)"
                },
                new RecordItem
                {
                    Descriptor         = addressDescriptor,
                    Name               = "Address",
                    RecordTypeProperty = "RecordType",
                    RegexPattern       = "^(ADR)"
                }
            });
            var originalContent = $"CLI|Harlen Naves|19840330{Environment.NewLine}ADR|No name street|10";

            var items = engine.ReadString(originalContent);

            var content = engine.WriteString(items);

            Assert.AreEqual(originalContent + Environment.NewLine, content);
        }
Ejemplo n.º 4
0
        public void Write_Single_Record()
        {
            var descriptor = new DelimitedRecordDescriptor("|");

            descriptor.AddField("Name")
            .SetTrimMode(TrimMode.Both)
            .SetAlignMode(AlignMode.Left)
            ;

            descriptor.AddField("BirthDate")
            .SetConverter(typeof(DateTimeConverter))
            .SetConverterFormat("yyyyMMdd")
            ;
            var engine = new DelimitedFluentEngine(descriptor);

            var item = new ExpandoObject();

            item.TryAdd("Name", "Harlen Naves");
            item.TryAdd("BirthDate", new DateTime(1984, 03, 30));
            var content = engine.WriteString(new [] { item });
        }