コード例 #1
0
        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());
        }
コード例 #2
0
        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"]);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: DickTse/Helper
        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}.");
        }
コード例 #4
0
        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"]);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: DickTse/Helper
        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}.");
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: DickTse/Helper
        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}.");
        }
コード例 #7
0
        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;
            }
        }