public void Format() { FormatterContext formatterContext = new FormatterContext( FormatterContext.DefaultBufferSize); Message value = new Message(); value.Formatter = GetFormatter(_fixedMessageFormatter); value.Fields.Add(1, "HE"); value.Fields.Add(2, "LLO"); InnerMessageField field = new InnerMessageField(37, value); InnerMessageFieldFormatter formatter; string formattedData; // Test fixed length formatting. formatter = new InnerMessageFieldFormatter(37, new FixedLengthManager(5), BinaryEncoder.GetInstance(), GetFormatter(_fixedMessageFormatter)); formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("HELLO")); formatterContext.Clear(); formatter = new InnerMessageFieldFormatter(37, new FixedLengthManager(4), BinaryEncoder.GetInstance(), GetFormatter(_fixedMessageFormatter)); try { formatter.Format(field, ref formatterContext); Assert.Fail(); } catch (ArgumentOutOfRangeException e) { Assert.IsTrue(e.ParamName.Equals("dataLength")); } // Test variable length formatting. formatterContext.Clear(); formatter = new InnerMessageFieldFormatter(48, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), BinaryEncoder.GetInstance(), GetFormatter(_fixedMessageFormatter)); formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("005HELLO")); formatterContext.Clear(); formatter.Format(new InnerMessageField(35, null), ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("000")); }
public void NewComponent() { Message value = new Message(); value.Formatter = GetFormatter(_fixedMessageFormatter); value.Fields.Add(1, "12"); value.Fields.Add(2, "345"); InnerMessageField field = new InnerMessageField(18, value); MessagingComponent component = field.NewComponent(); Assert.IsTrue(component is InnerMessageField); Assert.IsTrue(field.FieldNumber == (( InnerMessageField )component).FieldNumber); Assert.IsNull((( InnerMessageField )component).Value); }
public void GetBytes() { Message value = new Message(); InnerMessageField field = new InnerMessageField(19, value); Assert.IsNull(field.GetBytes()); value.Formatter = GetFormatter(_fixedMessageFormatter); value.Fields.Add(1, "HE"); value.Fields.Add(2, "LLO"); Assert.IsTrue( FrameworkEncoding.GetInstance().Encoding.GetString(field.GetBytes()) == "HELLO"); }
public void TestToString() { Message value = new Message(); value.Formatter = GetFormatter(_fixedMessageFormatter); value.Fields.Add(1, "98"); value.Fields.Add(2, "345"); InnerMessageField field = new InnerMessageField(12); Assert.IsTrue(string.Empty == field.ToString()); field.Value = value; Assert.IsTrue(field.ToString() == "1:98,2:345"); }
public void Instantiation() { Message value = new Message(); InnerMessageField field = new InnerMessageField(30); Assert.IsTrue(field.FieldNumber == 30); Assert.IsNull(field.Value); field = new InnerMessageField(15, value); Assert.IsTrue(field.FieldNumber == 15); Assert.IsTrue(field.Value is Message); Message fieldValue = field.Value as Message; Assert.IsTrue(value == fieldValue); }
public void Value() { Message value = new Message(); InnerMessageField field = new InnerMessageField(18); Assert.IsNull(field.Value); field.Value = value; Assert.IsTrue(field.Value is Message); Message fieldValue = field.Value as Message; Assert.IsTrue(value == fieldValue); try { field.Value = field.FieldNumber; Assert.Fail(); } catch (ArgumentException e) { Assert.IsTrue(e.ParamName == "value"); } }
public void TestClone() { Message value = new Message(); value.Formatter = GetFormatter(_fixedMessageFormatter); value.Fields.Add(1, "12"); value.Fields.Add(2, "345"); InnerMessageField field = new InnerMessageField(14); InnerMessageField clonedField = ( InnerMessageField )(field.Clone()); Assert.IsNull(clonedField.Value); Assert.IsTrue(field.FieldNumber == clonedField.FieldNumber); field.Value = value; clonedField = ( InnerMessageField )(field.Clone()); Assert.IsTrue(field.ToString() == clonedField.ToString()); Assert.IsTrue(field.Value != clonedField.Value); }
/// <summary> /// It returns the inner message located in a field (pointed by /// _fieldNumber) of a given message. /// </summary> /// <param name="message"> /// The given message. /// </param> /// <returns> /// The inner message located in a field (pointed by _fieldNumber) /// of a given message. /// </returns> private Message GetInnerMessage(Message message) { if (message == null) { throw new ExpressionEvaluationException(string.Format( "Can't get inner message in field {0} because the message is null.", _fieldNumber)); } if (!message.Fields.Contains(_fieldNumber)) { throw new ExpressionEvaluationException(string.Format( "Can't get inner message in {0} because isn't present in the message.", _fieldNumber)); } InnerMessageField innerMessageField = message[_fieldNumber] as InnerMessageField; if (innerMessageField == null) { throw new ExpressionEvaluationException(string.Format( "Can't get inner message in {0} because isn't an inner message.", _fieldNumber)); } Message innerMessage = innerMessageField.Value as Message; if (innerMessage == null) { throw new ExpressionEvaluationException(string.Format( "Can't get inner message in {0} because it doesn't contain a message.", _fieldNumber)); } return(innerMessage); }