public void Write_Hierarchy_Fixed() { var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { var ff = new FixedFileFormat <HierarchyDataA>("A", 3, 2); var fw = new FileWriter <HierarchyDataA>(sw, ff); var result = fw.Write(CreateHierarchyA()); Assert.AreEqual(FileContentStatus.Content, result.Status); Assert.IsFalse(result.HasErrors); Assert.AreEqual(13, result.Records.Count); AssertFileRecord(1, "A", 0, false, result.Records[0]); AssertFileRecord(2, "B", 1, false, result.Records[1]); AssertFileRecord(3, "C", 1, false, result.Records[2]); AssertFileRecord(4, "D1", 2, false, result.Records[3]); AssertFileRecord(5, "D1", 2, false, result.Records[4]); AssertFileRecord(6, "D2", 2, false, result.Records[5]); AssertFileRecord(7, "D2", 2, false, result.Records[6]); AssertFileRecord(8, "D3", 2, false, result.Records[7]); AssertFileRecord(9, "D3", 2, false, result.Records[8]); AssertFileRecord(10, "E", 2, false, result.Records[9]); AssertFileRecord(11, "F", 1, false, result.Records[10]); AssertFileRecord(12, "G", 2, false, result.Records[11]); AssertFileRecord(13, "H", 3, false, result.Records[12]); result = fw.EndOfFile(); Assert.AreEqual(FileContentStatus.EndOfFile, result.Status); Assert.IsFalse(result.HasErrors); Assert.AreEqual("001A \r\n002B \r\n003C \r\n004D1\r\n005D1\r\n006D2\r\n007D2\r\n008D3\r\n009D3\r\n010E \r\n011F \r\n012G \r\n013H \r\n", sb.ToString()); } }
public void Prop_PaddingChar() { var fff = new FixedFileFormat <Person>(); Assert.AreEqual(FileFormatBase.SpaceCharacter, fff.PaddingChar); fff.PaddingChar = '*'; Assert.AreEqual('*', fff.PaddingChar); }
public void Execute_StringTrimTransform_FixedFormat() { // Column separators: < < < using (var sr = new StringReader(" ABC ABC ")) { var ff = new FixedFileFormat <Data>(); var fr = new FileReader <Data>(sr, ff); var result = fr.Read(); Assert.IsNotNull(result); Assert.AreEqual(FileContentStatus.Content, result.Status); Assert.IsFalse(result.HasErrors); var val = (Data)result.Value; Assert.AreEqual(" ABC", val.Col1); Assert.AreEqual(" ABC ", val.Col2); Assert.AreEqual(string.Empty, val.Col3); } }
public void Write_NoHierarchy_Fixed() { var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { var ff = new FixedFileFormat <Data>(); var fw = new FileWriter <Data>(sw, ff); var result = fw.Write(new Data { Col1 = "A", Col2 = "BB", Col3 = "CCC" }); Assert.AreEqual(FileContentStatus.Content, result.Status); Assert.IsFalse(result.HasErrors); result = fw.EndOfFile(); Assert.AreEqual(FileContentStatus.EndOfFile, result.Status); Assert.IsFalse(result.HasErrors); Assert.AreEqual("A BB CCC \r\n", sb.ToString()); } }
public void Ctor_Hierarchy_ContentValidator() { var fff = new FixedFileFormat <Person>("X", 0, 1, PersonValidator.Default); Assert.AreEqual(0, fff.HierarchyColumnPosition); Assert.AreEqual(1, fff.HierarchyColumnLength); Assert.AreEqual(FileFormatBase.SpaceCharacter, fff.PaddingChar); // FileFormat base configuration. Assert.AreEqual(FileValidation.Unspecified, fff.FileValidation); Assert.IsTrue(fff.IsHierarchical); Assert.AreEqual(typeof(Person), fff.ContentRowType); Assert.AreEqual("X", fff.ContentRecordIdentifier); Assert.AreSame(PersonValidator.Default, fff.ContentValidator); Assert.IsNull(fff.HeaderRowType); Assert.IsNull(fff.HeaderRecordIdentifier); Assert.IsNull(fff.HeaderValidator); Assert.IsNull(fff.TrailerRowType); Assert.IsNull(fff.TrailerRecordIdentifier); Assert.IsNull(fff.TrailerValidator); Assert.AreEqual(StringTransform.EmptyToNull, fff.StringTransform); Assert.AreEqual(StringTrim.End, fff.StringTrim); }