Exemplo n.º 1
0
        /// <summary>
        /// Construye un nuevo formateador de campos de mensajes cuyos
        /// datos son de tipo cadena de caracteres.
        /// </summary>
        /// <param name="fieldNumber">
        /// Es el número de campo del mensaje que el formateador es capaz
        /// de formatear.
        /// </param>
        /// <param name="lengthManager">
        /// Es el objeto que administra el largo de los datos del campo.
        /// </param>
        /// <param name="encoder">
        /// Es el objeto capaz de codificar/decodificar los datos del campo.
        /// </param>
        /// <param name="padding">
        /// Es el objeto capaz de rellenar los datos del campo.
        /// </param>
        /// <param name="validator">
        /// Es el objeto capaz de validar los datos del campo.
        /// </param>
        /// <param name="valueFormatter">
        /// Es el objeto capaz de formatear/analizar los datos del campo.
        /// </param>
        /// <param name="description">
        /// Es la descripción del campo.
        /// </param>
        public StringFieldFormatter(int fieldNumber, LengthManager lengthManager,
                                    IStringEncoder encoder, IStringPadding padding, IStringValidator validator,
                                    IStringFieldValueFormatter valueFormatter, string description) :
            base(fieldNumber, description)
        {
            if (lengthManager == null)
            {
                throw new ArgumentNullException("lengthManager");
            }

            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }

            _lengthManager  = lengthManager;
            _encoder        = encoder;
            _validator      = validator;
            _valueFormatter = valueFormatter;

            if ((padding == null) && (lengthManager is FixedLengthManager))
            {
                _padding = SpacePaddingRight.GetInstance(false);
            }
            else
            {
                _padding = padding;
            }
        }
        /// <summary>
        /// Construye un nuevo formateador de cabezales de mensajes cuyos
        /// datos son de tipo cadena de caracteres.
        /// </summary>
        /// <param name="lengthManager">
        /// Es el objeto que administra el largo de los datos del cabezal.
        /// </param>
        /// <param name="encoder">
        /// Es el objeto capaz de codificar/decodificar los datos del cabezal.
        /// </param>
        /// <param name="padding">
        /// Es el objeto capaz de rellenar los datos del cabezal.
        /// </param>
        public StringMessageHeaderFormatter(LengthManager lengthManager,
                                            IStringEncoder encoder, IStringPadding padding) : base()
        {
            if (lengthManager == null)
            {
                throw new ArgumentNullException("lengthManager");
            }

            if (encoder == null)
            {
                throw new ArgumentNullException("encoder");
            }

            _lengthManager = lengthManager;
            _encoder       = encoder;

            if ((padding == null) && (lengthManager is FixedLengthManager))
            {
                _padding = SpacePaddingRight.GetInstance(false);
            }
            else
            {
                _padding = padding;
            }
        }
Exemplo n.º 3
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));
        }
Exemplo n.º 4
0
        public void SetUp()
        {
            _paddingWithTruncate = SpacePaddingRight.GetInstance(true);
            Assert.IsNotNull(_paddingWithTruncate);

            _paddingWithoutTruncate = SpacePaddingRight.GetInstance(false);
            Assert.IsNotNull(_paddingWithoutTruncate);
        }
        public void Constructors()
        {
            // Test fixed length properties.
            StringFieldFormatter formatter = new StringFieldFormatter(37,
                                                                      new FixedLengthManager(12), StringEncoder.GetInstance(),
                                                                      SpacePaddingRight.GetInstance(false), NumericValidator.GetInstance(),
                                                                      null, "My formatter");

            Assert.IsTrue(formatter.FieldNumber == 37);
            Assert.IsTrue(formatter.LengthManager.MaximumLength == 12);
            Assert.IsTrue(formatter.Description.Equals("My formatter"));
            Assert.IsTrue(formatter.Encoder == StringEncoder.GetInstance());
            Assert.IsTrue(formatter.Padding == SpacePaddingRight.GetInstance(false));
            Assert.IsTrue(formatter.Validator == NumericValidator.GetInstance());
            Assert.IsNull(formatter.ValueFormatter);

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

            Assert.IsTrue(formatter.FieldNumber == 63);
            Assert.IsTrue(formatter.LengthManager.MaximumLength == 800);
            Assert.IsTrue(formatter.Description.Equals(string.Empty));
            Assert.IsTrue(formatter.Encoder == StringEncoder.GetInstance());
            Assert.IsTrue(formatter.Padding == null);
            Assert.IsTrue(formatter.Validator == null);

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

            Assert.IsTrue(formatter.FieldNumber == 48);
            Assert.IsTrue(formatter.LengthManager.MaximumLength == 999);
            Assert.IsTrue(formatter.Description.Equals("My formatter"));
            Assert.IsTrue(formatter.Encoder == StringEncoder.GetInstance());
            Assert.IsTrue(formatter.Padding == SpacePaddingRight.GetInstance(false));
            Assert.IsTrue(formatter.Validator == null);
        }
Exemplo n.º 6
0
 public void GetInstance()
 {
     Assert.IsTrue(_paddingWithTruncate == SpacePaddingRight.GetInstance(true));
     Assert.IsTrue(_paddingWithoutTruncate == SpacePaddingRight.GetInstance(false));
 }