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)); }
/// <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; }
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); } }
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); } }
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")); }
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]); } }
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); }