Exemple #1
0
        public void Constructors()
        {
            // Test fixed length properties.
            StringMessageHeaderFormatter formatter = new StringMessageHeaderFormatter(
                new FixedLengthManager(12), StringEncoder.GetInstance(),
                SpacePaddingRight.GetInstance(false));

            Assert.IsTrue(formatter.LengthManager.MaximumLength == 12);
            Assert.IsTrue(formatter.Encoder == StringEncoder.GetInstance());
            Assert.IsTrue(formatter.Padding == SpacePaddingRight.GetInstance(false));

            // Test variable length properties without padding.
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(1, 800,
                                                                                   StringLengthEncoder.GetInstance(5)), StringEncoder.GetInstance());

            Assert.IsTrue(formatter.LengthManager.MaximumLength == 800);
            Assert.IsTrue(formatter.Encoder == StringEncoder.GetInstance());
            Assert.IsTrue(formatter.Padding == null);

            // Test variable length properties with padding.
            formatter = new StringMessageHeaderFormatter(new VariableLengthManager(1,
                                                                                   999, StringLengthEncoder.GetInstance(3)), StringEncoder.GetInstance(),
                                                         SpacePaddingRight.GetInstance(false));

            Assert.IsTrue(formatter.LengthManager.MaximumLength == 999);
            Assert.IsTrue(formatter.Encoder == StringEncoder.GetInstance());
            Assert.IsTrue(formatter.Padding == SpacePaddingRight.GetInstance(false));
        }
Exemple #2
0
 /// <summary>
 /// Construye una nueva instancia de <see cref="MessageFormatterTestConfig"/>.
 /// </summary>
 /// <param name="fields">
 /// Son los campos a emplear en el test.
 /// </param>
 /// <param name="headerFormatter">
 /// Es el formateador del header.
 /// </param>
 /// <param name="header">
 /// Es el header a emplear.
 /// </param>
 /// <param name="expectedFormattedData">
 /// Es el resultado esperado del formateo.
 /// </param>
 public MessageFormatterTestConfig(int[] fields,
                                   StringMessageHeaderFormatter headerFormatter,
                                   MessageHeader header, string expectedFormattedData)
 {
     Fields                = fields;
     HeaderFormatter       = headerFormatter;
     Header                = header;
     ExpectedFormattedData = expectedFormattedData;
 }
 /// <summary>
 /// Construye una nueva instancia de <see cref="Iso8583MessageFormatterTestConfig"/>.
 /// </summary>
 /// <param name="fields">
 /// Son los campos a emplear en el test.
 /// </param>
 /// <param name="headerFormatter">
 /// Es el formateador del header.
 /// </param>
 /// <param name="header">
 /// Es el header a emplear.
 /// </param>
 /// <param name="messageTypeIdentifierFormatter">
 /// Es el formateador del identificador de tipo de mensaje.
 /// </param>
 /// <param name="messageTypeIdentifier">
 /// Es el identificador de tipo de mensaje a emplear.
 /// </param>
 /// <param name="expectedFormattedData">
 /// Es el resultado esperado del formateo.
 /// </param>
 public Iso8583MessageFormatterTestConfig(int[] fields,
                                          StringMessageHeaderFormatter headerFormatter,
                                          MessageHeader header, StringFieldFormatter messageTypeIdentifierFormatter,
                                          int messageTypeIdentifier, string expectedFormattedData)
 {
     Fields          = fields;
     HeaderFormatter = headerFormatter;
     Header          = header;
     MessageTypeIdentifierFormatter = messageTypeIdentifierFormatter;
     MessageTypeIdentifier          = messageTypeIdentifier;
     ExpectedFormattedData          = expectedFormattedData;
 }
Exemple #4
0
        public void Clone()
        {
            string name        = "Formatter";
            string description = "ISO 8583 message formatter formatter";
            StringMessageHeaderFormatter headerFormatter =
                new StringMessageHeaderFormatter(new FixedLengthManager(2),
                                                 StringEncoder.GetInstance());
            StringFieldFormatter mtiFormatter =
                new StringFieldFormatter(-1, new FixedLengthManager(4),
                                         StringEncoder.GetInstance());
            Iso8583MessageFormatter formatter = new Iso8583MessageFormatter();

            // Set properties.
            formatter.Name                   = name;
            formatter.Description            = description;
            formatter.MessageHeaderFormatter =
                ( IMessageHeaderFormatter)headerFormatter;
            formatter.MessageTypeIdentifierFormatter = mtiFormatter;

            // Add field Formatters.
            for (int i = 0; i < _messageFormatterTests[0].Fields.Length; i++)
            {
                formatter.FieldFormatters.Add(_messageFormatter[_messageFormatterTests[0].Fields[i]]);
            }

            Iso8583MessageFormatter clonedFormatter =
                ( Iso8583MessageFormatter)formatter.Clone();

            Assert.IsNotNull(clonedFormatter);

            // Check properties.
            Assert.IsTrue(clonedFormatter.Name.Equals(name));
            Assert.IsTrue(clonedFormatter.Description.Equals(description));
            Assert.IsNotNull(formatter.Logger == clonedFormatter.Logger);
            Assert.IsNotNull(clonedFormatter.FieldFormatters);
            Assert.IsNotNull(clonedFormatter.MessageHeaderFormatter);
            Assert.IsTrue(formatter.MessageHeaderFormatter == headerFormatter);
            Assert.IsTrue(formatter.MessageTypeIdentifierFormatter == mtiFormatter);

            foreach (FieldFormatter fieldFormatter in formatter.FieldFormatters)
            {
                Assert.IsTrue(clonedFormatter.FieldFormatters.Contains(
                                  fieldFormatter.FieldNumber));
                Assert.IsTrue(clonedFormatter[fieldFormatter.FieldNumber] ==
                              fieldFormatter);
            }
        }
Exemple #5
0
        public void Clone()
        {
            string name        = "Basic formatter";
            string description = "My basic formatter";
            StringMessageHeaderFormatter headerFormatter =
                new StringMessageHeaderFormatter(new FixedLengthManager(2),
                                                 StringEncoder.GetInstance());
            BasicMessageFormatter formatter = new BasicMessageFormatter();

            // Set properties.
            formatter.Name                   = name;
            formatter.Description            = description;
            formatter.MessageHeaderFormatter =
                ( IMessageHeaderFormatter)headerFormatter;

            // Add field Formatters.
            for (int i = 0; i < _fixedMessageFormatter.Length; i++)
            {
                formatter.FieldFormatters.Add(_fixedMessageFormatter[i]);
            }

            BasicMessageFormatter clonedFormatter =
                ( BasicMessageFormatter)formatter.Clone();

            Assert.IsNotNull(clonedFormatter);

            // Check properties.
            Assert.IsTrue(clonedFormatter.Name.Equals(name));
            Assert.IsTrue(clonedFormatter.Description.Equals(description));
            Assert.IsNotNull(formatter.Logger == clonedFormatter.Logger);
            Assert.IsNotNull(clonedFormatter.FieldFormatters);
            Assert.IsNotNull(clonedFormatter.MessageHeaderFormatter);
            Assert.IsTrue(formatter.MessageHeaderFormatter == headerFormatter);

            foreach (FieldFormatter fieldFormatter in formatter.FieldFormatters)
            {
                Assert.IsTrue(clonedFormatter.FieldFormatters.Contains(
                                  fieldFormatter.FieldNumber));
                Assert.IsTrue(clonedFormatter[fieldFormatter.FieldNumber] ==
                              fieldFormatter);
            }
        }
Exemple #6
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"));
        }
Exemple #7
0
        public void InstantiationAndProperties()
        {
            string name        = "Basic formatter";
            string description = "My basic formatter";
            StringMessageHeaderFormatter headerFormatter =
                new StringMessageHeaderFormatter(new FixedLengthManager(2),
                                                 StringEncoder.GetInstance());
            BasicMessageFormatter formatter = new BasicMessageFormatter();

            // Set properties.
            formatter.Name                   = name;
            formatter.Description            = description;
            formatter.MessageHeaderFormatter =
                ( IMessageHeaderFormatter)headerFormatter;

            // Check properties.
            Assert.IsTrue(formatter.Name.Equals(name));
            Assert.IsTrue(formatter.Description.Equals(description));
            Assert.IsNotNull(formatter.Logger);
            Assert.IsNotNull(formatter.FieldFormatters);
            Assert.IsNotNull(formatter.MessageHeaderFormatter);
            Assert.IsTrue(formatter.MessageHeaderFormatter == headerFormatter);
            Assert.IsNull(formatter[1]);

            // Add field Formatters.
            for (int i = 0; i < _fixedMessageFormatter.Length; i++)
            {
                formatter.FieldFormatters.Add(_fixedMessageFormatter[i]);
            }

            // Check index property.
            for (int i = 0; i < _fixedMessageFormatter.Length; i++)
            {
                Assert.IsNotNull(formatter[i + 1]);
                Assert.IsTrue(formatter[i + 1] == _fixedMessageFormatter[i]);
            }
        }
Exemple #8
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);
        }