public void FixedLengthFieldString_AssignValueToEachField_ToStringMethodShouldReturnExpectedString() { FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("HKID", 10) { Value = "A123456(7)" }, new FixedLengthStringField("Name", 20) { Value = "CHAN TAI MAN" }, new FixedLengthInt32Field("Age", 3) { Value = 32 }, new FixedLengthDateTimeField("DOB") { Value = new DateTime(1985, 3, 5) } }; FixedLengthFieldString fixedStr = new FixedLengthFieldString(fields); string expectedStr = "A123456(7)CHAN TAI MAN 32 19850305"; Assert.AreEqual(expectedStr, fixedStr.ToString()); }
public void FixedLengthFieldString_ParseStringsIntoMultipleFixedLengthFieldsUsingConstructor_ShouldBeParsedSuccessfully() { FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("HKID", 10), new FixedLengthStringField("Name", 20) }; string rawStr = "A123456(7)CHAN TAI MAN "; FixedLengthFieldString fixedStr = new FixedLengthFieldString(fields, rawStr); Assert.AreEqual("A123456(7)", fixedStr.Fields["HKID"]); Assert.AreEqual("CHAN TAI MAN", fixedStr.Fields["Name"]); }
private static void DemoChangingFieldValueByUsingIndexerProperty() { Console.WriteLine("=============================================="); Console.WriteLine("Changing Field Value By Using Indexer Property"); Console.WriteLine("=============================================="); Console.WriteLine(); Console.WriteLine("Before Updating Field Value"); Console.WriteLine("---------------------------"); Stopwatch sw = new Stopwatch(); FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("Staff ID", 10) { Value = "AB223345" }, new FixedLengthStringField("Name", 20) { Value = "CHAN TAI MAN" }, new FixedLengthInt64Field("Salary", 13) { PaddingCharPosition = PaddingCharPosition.Left, PaddingChar = '0', Value = 1000000 } }; foreach (var field in fields) { Console.WriteLine(field.Name + ": |" + field.Value + "|"); } Console.WriteLine("Raw String: " + new FixedLengthFieldString(fields)); sw.Start(); fields["Salary"] = 1300000; sw.Stop(); Console.WriteLine(); Console.WriteLine("After Updating Field Value"); Console.WriteLine("---------------------------"); foreach (var field in fields) { Console.WriteLine(field.Name + ": |" + field.Value + "|"); } Console.WriteLine("Raw String: " + new FixedLengthFieldString(fields)); Console.WriteLine(); Console.WriteLine($"Elapsed time: {sw.Elapsed}."); }
public void FixedLengthFieldString_ParseStringIntoMultipleFixedLengthFieldsUsingParseMethod_ShouldBeParsedSuccessfully() { FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("HKID", 10), new FixedLengthStringField("Name", 20), new FixedLengthInt32Field("Age", 3), new FixedLengthDateTimeField("DOB") }; FixedLengthFieldString fixedStr = new FixedLengthFieldString(fields); string rawStr = "A123456(7)CHAN TAI MAN 32 19850305"; fixedStr.Parse(rawStr); Assert.AreEqual("A123456(7)", fixedStr.Fields["HKID"]); Assert.AreEqual("CHAN TAI MAN", fixedStr.Fields["Name"]); Assert.AreEqual(32, fixedStr.Fields["Age"]); Assert.AreEqual(new DateTime(1985, 3, 5), fixedStr.Fields["DOB"]); }
private static void DemoBuildingStringFromGivenFixedLengthFieldValues() { Console.WriteLine("=============================================="); Console.WriteLine("Building string from given fixed-length-fields"); Console.WriteLine("=============================================="); Console.WriteLine(); Console.WriteLine("Input Fields"); Console.WriteLine("------------"); Stopwatch sw = new Stopwatch(); sw.Start(); FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("UID", 22) { Value = "2017052200410030001100" }, new FixedLengthInt64Field("Amount", 13) { PaddingCharPosition = PaddingCharPosition.Left, PaddingChar = '0', Value = 1234 }, new FixedLengthDateTimeField("ChequeDate", 20) { PaddingCharPosition = PaddingCharPosition.Left, Value = new DateTime(2017, 3, 1) } }; foreach (var field in fields) { Console.WriteLine(field.Name + ": |" + field.Value + "|"); } Console.WriteLine(); Console.WriteLine("Output String"); Console.WriteLine("-------------"); FixedLengthFieldString fixedStr = new FixedLengthFieldString(fields); sw.Stop(); Console.WriteLine(fixedStr); Console.WriteLine(); Console.WriteLine($"Elapsed time: {sw.Elapsed}."); }
private static void DemoBuildingFixedFieldStringFromGivenRawStrings() { Console.WriteLine("=================================================="); Console.WriteLine("Building fixed-field-string from given raw strings"); Console.WriteLine("=================================================="); Console.WriteLine(); Console.WriteLine("Input Raw Strings"); Console.WriteLine("-----------------"); string[] rows = new string[] { "A123456(7)CHAN TAI MAN 10015032017", "B319191(9)LAM CHI CHUNG 32 23052017" }; foreach (string row in rows) { Console.WriteLine(row); } Console.WriteLine(); Console.WriteLine("Output Fields"); Console.WriteLine("-------------"); Stopwatch sw = new Stopwatch(); sw.Start(); FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("HKID", 10), new FixedLengthStringField("Name", 20), new FixedLengthInt32Field("Age", 3), new FixedLengthDateTimeField("DOB", "ddMMyyyy") }; foreach (string row in rows) { FixedLengthFieldString fixedStr = new FixedLengthFieldString(fields, row); foreach (IFixedLengthField field in fixedStr.Fields) { Console.WriteLine(field.Name + ": |" + field.Value + "|"); } } sw.Stop(); Console.WriteLine(); Console.WriteLine($"Elapsed time: {sw.Elapsed}."); }
public void FixedLengthFieldString_RawStringTooLong_ShouldThrowMalformedRawStringException() { FixedLengthFieldCollection fields = new FixedLengthFieldCollection() { new FixedLengthStringField("HKID", 10), new FixedLengthStringField("Name", 10), }; string rawStr = "A123456(7)CHAN TAI MAN"; try { new FixedLengthFieldString(fields, rawStr); } catch (MalformedRawStringException ex) { Assert.AreEqual("The raw string is too long.", ex.Message); throw; } }