public void SetUp()
        {
            _paddingWithTruncate = SpacePaddingLeft.GetInstance(true);
            Assert.IsNotNull(_paddingWithTruncate);

            _paddingWithoutTruncate = SpacePaddingLeft.GetInstance(false);
            Assert.IsNotNull(_paddingWithoutTruncate);
        }
 public void GetInstance()
 {
     Assert.IsTrue(_paddingWithTruncate == SpacePaddingLeft.GetInstance(true));
     Assert.IsTrue(_paddingWithoutTruncate == SpacePaddingLeft.GetInstance(false));
 }
        public void Format()
        {
            FormatterContext formatterContext = new FormatterContext(
                FormatterContext.DefaultBufferSize);
            StringField          field = new StringField(1, "DATA");
            StringFieldFormatter formatter;
            string formattedData;

            // Test fixed length formatting.
            formatter = new StringFieldFormatter(37,
                                                 new FixedLengthManager(12), StringEncoder.GetInstance());
            formatter.Format(field, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("DATA        "));

            // Test variable length formatting without padding.
            formatterContext.Clear();
            formatter = new StringFieldFormatter(48, new VariableLengthManager(0,
                                                                               999, StringLengthEncoder.GetInstance(999)),
                                                 StringEncoder.GetInstance());
            formatter.Format(field, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("004DATA"));
            formatterContext.Clear();
            formatter.Format(new StringField(5, null), ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("000"));

            // Test variable length formatting with padding.
            formatterContext.Clear();
            formatter = new StringFieldFormatter(48, new VariableLengthManager(10,
                                                                               10, StringLengthEncoder.GetInstance(10)),
                                                 StringEncoder.GetInstance(), SpacePaddingLeft.GetInstance(false),
                                                 string.Empty);
            formatter.Format(field, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("10      DATA"));

            // Test validator with fixed length formatting.
            formatterContext.Clear();
            formatter = new StringFieldFormatter(37,
                                                 new FixedLengthManager(12), StringEncoder.GetInstance(),
                                                 NumericValidator.GetInstance(), string.Empty);
            field.FieldValue = "000000001500";
            formatter.Format(field, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("000000001500"));

            // Try with an invalid value.
            formatterContext.Clear();
            field.FieldValue = "D1500";
            try {
                formatter.Format(field, ref formatterContext);
                Assert.Fail();
            } catch (StringValidationException) {
            }

            // Test validator with fixed length formatting and numeric padding.
            formatterContext.Clear();
            formatter = new StringFieldFormatter(37,
                                                 new FixedLengthManager(12), StringEncoder.GetInstance(),
                                                 ZeroPaddingLeft.GetInstance(false, true), NumericValidator.GetInstance());
            field.FieldValue = "56600";
            formatter.Format(field, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("000000056600"));

            // Try with an invalid value.
            formatterContext.Clear();
            field.FieldValue = "D1500";
            try {
                formatter.Format(field, ref formatterContext);
                Assert.Fail();
            } catch (StringValidationException) {
            }
        }
        public void Parse()
        {
            ParserContext parseContext = new ParserContext(
                ParserContext.DefaultBufferSize);
            StringField          field;
            StringFieldFormatter formatter;

            // Setup data for three complete fields an one with partial data.
            parseContext.Write("DATA        20   DATA TO BE PARSED009SOME DATA00");

            // Test fixed length parse.
            formatter = new StringFieldFormatter(37, new FixedLengthManager(12),
                                                 StringEncoder.GetInstance());
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("DATA"));

            // Test variable length parse with padding.
            formatter = new StringFieldFormatter(48, new VariableLengthManager(1, 20,
                                                                               StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(),
                                                 SpacePaddingLeft.GetInstance(false), string.Empty);
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("DATA TO BE PARSED"));

            // Test variable length parse without padding.
            formatter = new StringFieldFormatter(48, new VariableLengthManager(1,
                                                                               999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance());
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("SOME DATA"));

            // Test partial variable length parse without padding.
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNull(field);
            parseContext.Write("9MORE D");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNull(field);
            parseContext.Write("ATA");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("MORE DATA"));

            // Test partial fixed parse with padding.
            formatter = new StringFieldFormatter(37, new FixedLengthManager(12),
                                                 StringEncoder.GetInstance());
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNull(field);
            parseContext.Write("ONE MORE");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNull(field);
            parseContext.Write("    ");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("ONE MORE"));

            // Test variable length header with zero length.
            formatter = new StringFieldFormatter(48, new VariableLengthManager(0,
                                                                               999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance());
            parseContext.Write("000");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsNull(field.FieldValue);

            // Test fixed length parse with validation.
            formatter = new StringFieldFormatter(37, new FixedLengthManager(12),
                                                 StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true),
                                                 NumericValidator.GetInstance());
            parseContext.Write("000000145000");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("145000"));

            // Try with an invalid value.
            parseContext.Write("0000001450F0");
            try {
                field = ( StringField)formatter.Parse(ref parseContext);
                Assert.Fail();
            } catch (StringValidationException) {
            }

            // Test variable length parse with validation.
            parseContext.Clear();
            parseContext.ResetDecodedLength();
            formatter = new StringFieldFormatter(48, new VariableLengthManager(1,
                                                                               999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(),
                                                 NumericValidator.GetInstance());
            parseContext.Write("00532000");
            field = ( StringField)formatter.Parse(ref parseContext);
            Assert.IsNotNull(field);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(field.FieldValue.Equals("32000"));

            // Try with an invalid value.
            parseContext.Write("005350F0");
            try {
                field = ( StringField)formatter.Parse(ref parseContext);
                Assert.Fail();
            } catch (StringValidationException) {
            }
        }
Example #5
0
        public void Format()
        {
            FormatterContext formatterContext = new FormatterContext(
                FormatterContext.DefaultBufferSize);
            StringMessageHeader          header = new StringMessageHeader("DATA");
            StringMessageHeaderFormatter formatter;
            string formattedData;

            // Test fixed length formatting.
            formatter = new StringMessageHeaderFormatter(
                new FixedLengthManager(12), StringEncoder.GetInstance());
            formatter.Format(header, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("DATA        "));
            formatterContext.Clear();
            formatter.Format(null, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("            "));

            // Test variable length formatting without padding.
            formatterContext.Clear();
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(0,
                                                                                   999, StringLengthEncoder.GetInstance(999)),
                                                         StringEncoder.GetInstance());
            formatter.Format(header, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("004DATA"));
            formatterContext.Clear();
            formatter.Format(null, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("000"));

            // Test variable length formatting with padding.
            formatterContext.Clear();
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(10,
                                                                                   10, StringLengthEncoder.GetInstance(10)),
                                                         StringEncoder.GetInstance(), SpacePaddingLeft.GetInstance(false));
            formatter.Format(header, ref formatterContext);
            formattedData = formatterContext.GetDataAsString();
            Assert.IsTrue(formattedData.Equals("10      DATA"));
        }
Example #6
0
        public void Parse()
        {
            ParserContext parseContext = new ParserContext(
                ParserContext.DefaultBufferSize);
            StringMessageHeader          header;
            StringMessageHeaderFormatter formatter;

            // Setup data for three complete fields an one with partial data.
            parseContext.Write("DATA        20   DATA TO BE PARSED009SOME DATA00");

            // Test fixed length parse.
            formatter = new StringMessageHeaderFormatter(new FixedLengthManager(12),
                                                         StringEncoder.GetInstance());
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNotNull(header);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(header.Value.Equals("DATA"));

            // Test variable length parse with padding.
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(1, 20,
                                                                                   StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(),
                                                         SpacePaddingLeft.GetInstance(false));
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNotNull(header);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(header.Value.Equals("DATA TO BE PARSED"));

            // Test variable length parse without padding.
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(1,
                                                                                   999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance());
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNotNull(header);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(header.Value.Equals("SOME DATA"));

            // Test partial variable length parse without padding.
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNull(header);
            parseContext.Write("9MORE D");
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNull(header);
            parseContext.Write("ATA");
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNotNull(header);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(header.Value.Equals("MORE DATA"));

            // Test partial fixed parse with padding.
            formatter = new StringMessageHeaderFormatter(new FixedLengthManager(12),
                                                         StringEncoder.GetInstance());
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNull(header);
            parseContext.Write("ONE MORE");
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNull(header);
            parseContext.Write("    ");
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNotNull(header);
            parseContext.ResetDecodedLength();
            Assert.IsTrue(header.Value.Equals("ONE MORE"));

            // Test variable length header with zero length.
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(0,
                                                                                   999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance());
            parseContext.Write("000");
            header = ( StringMessageHeader)formatter.Parse(ref parseContext);
            Assert.IsNotNull(header);
            parseContext.ResetDecodedLength();
            Assert.IsNull(header.Value);
        }