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)); }
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); }
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 }); }