public void Read() { var descriptor = new DelimitedRecordDescriptor("|"); descriptor.AddField("Name") .SetTrimMode(TrimMode.Both) .SetAlignMode(AlignMode.Left) ; descriptor.AddField("BirthDate") .SetType(typeof(DateTime)) .SetConverterFormat("yyyyMMdd") ; var engine = new DelimitedFluentEngine(descriptor); var items = engine.ReadString("HARLEN |19840330"); Assert.IsNotNull(items); Assert.AreEqual(1, items.Length); dynamic item = items[0]; Assert.AreEqual("HARLEN", item.Name); Assert.IsNotNull(item.BirthDate); Assert.AreEqual(new DateTime(1984, 3, 30).Date, ((DateTime)item.BirthDate).Date); }
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 Create_BaseEngine() { var descriptor = new DelimitedRecordDescriptor("|"); descriptor.AddField("Name") .SetTrimMode(TrimMode.Both) .SetAlignMode(AlignMode.Left) ; descriptor.AddField("BirthDate") .SetType(typeof(DateTime)) .SetConverterFormat("yyyyMMdd") ; var engine = new DelimitedFluentEngine(descriptor); var items = engine.ReadString("HARLEN |19840330"); }
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 }); }
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 content = $"CLI|Harlen Naves |19840330{Environment.NewLine}ADR| No name street | 10"; var items = engine.ReadString(content); Assert.IsNotNull(items); Assert.AreEqual(2, items.Length); dynamic client = items[0]; Assert.AreEqual("CLI", client.RecordType); Assert.AreEqual("Harlen Naves", client.Name); Assert.AreEqual(new DateTime(1984, 3, 30).Date, ((DateTime)client.BirthDate).Date); dynamic address = items[1]; Assert.AreEqual("ADR", address.RecordType); Assert.AreEqual("No name street", address.Street); Assert.AreEqual(10, (int)address.Number); }