Esempio n. 1
0
        public void Properties()
        {
            Message message = new Message();

            Assert.IsNull(message.Header);
            StringMessageHeader header = new StringMessageHeader("HEADER");

            message.Header = header;
            Assert.IsNotNull(message.Header);
            Assert.IsTrue(message.Header == header);
            Assert.IsTrue((( StringMessageHeader)
                           (message.Header)).Value.Equals("HEADER"));
            Assert.IsNotNull(message.Fields);

            Assert.IsNull(message.Formatter);
            BasicMessageFormatter formatter = new BasicMessageFormatter();

            message.Formatter = formatter;
            Assert.IsNotNull(message.Formatter);
            Assert.IsTrue(message.Formatter == formatter);

            Assert.IsNull(message[3]);
            message.Fields.Add(3, "000000");
            Assert.IsNotNull(message[3]);
        }
Esempio n. 2
0
        public void NewMessage()
        {
            BasicMessageFormatter formatter = new BasicMessageFormatter();

            object message = formatter.NewMessage();

            Assert.IsTrue(message is Message);
        }
Esempio n. 3
0
        public void AssignFields()
        {
            BasicMessageFormatter formatter = new BasicMessageFormatter();
            Message message = new Message();

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

            // Replace field formatter for field number 6, to perform
            // a complete AssignFields test.
            formatter.FieldFormatters.Add(new BinaryFieldFormatter(6,
                                                                   new FixedLengthManager(20), BinaryEncoder.GetInstance()));

            // Perform test for invalid parameters.
            try {
                formatter.AssignFields(null, null);
                Assert.Fail();
            } catch (ArgumentNullException e) {
                Assert.IsTrue(e.ParamName == "message");
            }

            try {
                formatter.AssignFields(message, null);
                Assert.Fail();
            } catch (ArgumentNullException e) {
                Assert.IsTrue(e.ParamName == "fieldsContainer");
            }

            // Perform a simple test.
            SimpleTransaction simpleTransaction = new SimpleTransaction();

            simpleTransaction.Terminal       = 106;
            simpleTransaction.CustomerName   = "John Doe";
            simpleTransaction.AdditionalData = "Some data";
            formatter.AssignFields(message, simpleTransaction);

            Assert.IsFalse(simpleTransaction.InvalidPropertyHasBeenTaken);
            Assert.IsFalse(message.Fields.Contains(1));
            Assert.IsFalse(message.Fields.Contains(2));
            Assert.IsTrue(message.Fields.Contains(5));
            Assert.IsTrue(simpleTransaction.Terminal.ToString().Equals(
                              message[5].ToString()));
            Assert.IsTrue(message.Fields.Contains(6));
            Assert.IsTrue(simpleTransaction.CustomerName.Equals(
                              message[6].ToString()));
            Assert.IsTrue(message.Fields.Contains(30));
            Assert.IsTrue(simpleTransaction.AdditionalData.Equals(
                              message[30].ToString()));
        }
Esempio n. 4
0
        /// <summary>
        /// It copies the message formatter instance data into the provided message formatter.
        /// </summary>
        /// <param name="messageFormatter">
        /// It's the message formatter where the message formatter instance data is copied.
        /// </param>
        /// <remarks>
        /// The header, the mti formatter and the fields formatters, aren't cloned,
        /// the new instance and the original shares those object instances.
        /// </remarks>
        public override void CopyTo(BasicMessageFormatter messageFormatter)
        {
            base.CopyTo(messageFormatter);

            if (messageFormatter is Iso8583MessageFormatter)
            {
                (( Iso8583MessageFormatter)
                 (messageFormatter)).MessageHeaderFormatter = MessageHeaderFormatter;
                (( Iso8583MessageFormatter)
                 (messageFormatter)).MessageTypeIdentifierFormatter = _mtiFormatter;
            }
        }
Esempio n. 5
0
        public void RetrieveFields()
        {
            BasicMessageFormatter formatter = new BasicMessageFormatter();
            Message message = new Message();

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

            // Replace field formatter for field number 6, to perform
            // a complete AssignFields test.
            formatter.FieldFormatters.Add(new BinaryFieldFormatter(6,
                                                                   new FixedLengthManager(20), BinaryEncoder.GetInstance()));

            // Perform test for invalid parameters.
            try {
                formatter.RetrieveFields(null, null);
                Assert.Fail();
            } catch (ArgumentNullException e) {
                Assert.IsTrue(e.ParamName == "message");
            }

            try {
                formatter.RetrieveFields(message, null);
                Assert.Fail();
            } catch (ArgumentNullException e) {
                Assert.IsTrue(e.ParamName == "fieldsContainer");
            }

            // Perform a simple test.
            message.Fields.Add(1, "01");
            message.Fields.Add(2, "02");
            message.Fields.Add(5, "1385");
            message.Fields.Add(6, "John Doe");
            message.Fields.Add(30, "Random data");
            SimpleTransaction simpleTransaction = new SimpleTransaction();

            formatter.RetrieveFields(message, simpleTransaction);

            Assert.IsFalse(simpleTransaction.InvalidPropertyHasBeenAssigned);
            Assert.IsNotNull(simpleTransaction.RetrieveBranch());
            Assert.IsTrue(simpleTransaction.RetrieveBranch().Equals("01"));
            Assert.IsTrue(simpleTransaction.Terminal == 1385);
            Assert.IsTrue(simpleTransaction.AdditionalData.Equals("Random data"));
        }
        private BasicMessageFormatter GetFormatter(FieldFormatter[] fieldFormatters)
        {
            BasicMessageFormatter formatter = new BasicMessageFormatter();

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

            return(formatter);
        }
Esempio n. 7
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);
            }
        }
Esempio n. 8
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]);
            }
        }
Esempio n. 9
0
        public void GetBitMapFieldNumbers()
        {
            BasicMessageFormatter formatter = new BasicMessageFormatter();

            Assert.IsNull(formatter.GetBitMapFieldNumbers());

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

            Assert.IsNull(formatter.GetBitMapFieldNumbers());

            formatter.FieldFormatters.Clear();

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

            int[] fieldNumbers = formatter.GetBitMapFieldNumbers();
            Assert.IsNotNull(fieldNumbers);
            Assert.IsTrue(fieldNumbers.Length == 1);
            Assert.IsTrue(fieldNumbers[0] == 4);

            formatter.FieldFormatters.Remove(4);
            Assert.IsNull(formatter.GetBitMapFieldNumbers());

            formatter.FieldFormatters.Clear();

            formatter.FieldFormatters.Add(new BitMapFieldFormatter(
                                              1, 65, 128, HexadecimalBinaryEncoder.GetInstance()));
            formatter.FieldFormatters.Add(new BitMapFieldFormatter(
                                              0, 1, 64, HexadecimalBinaryEncoder.GetInstance()));
            formatter.FieldFormatters.Add(new BitMapFieldFormatter(
                                              65, 129, 192, HexadecimalBinaryEncoder.GetInstance()));

            fieldNumbers = formatter.GetBitMapFieldNumbers();
            Assert.IsNotNull(fieldNumbers);
            Assert.IsTrue(fieldNumbers.Length == 3);
            Assert.IsTrue(fieldNumbers[0] == 0);
            Assert.IsTrue(fieldNumbers[1] == 1);
            Assert.IsTrue(fieldNumbers[2] == 65);

            formatter.FieldFormatters.Remove(65);

            fieldNumbers = formatter.GetBitMapFieldNumbers();
            Assert.IsNotNull(fieldNumbers);
            Assert.IsTrue(fieldNumbers.Length == 2);
            Assert.IsTrue(fieldNumbers[0] == 0);
            Assert.IsTrue(fieldNumbers[1] == 1);

            formatter.FieldFormatters.Remove(0);

            fieldNumbers = formatter.GetBitMapFieldNumbers();
            Assert.IsNotNull(fieldNumbers);
            Assert.IsTrue(fieldNumbers.Length == 1);
            Assert.IsTrue(fieldNumbers[0] == 1);

            formatter.FieldFormatters.Add(new BitMapFieldFormatter(
                                              65, 129, 192, HexadecimalBinaryEncoder.GetInstance()));

            fieldNumbers = formatter.GetBitMapFieldNumbers();
            Assert.IsNotNull(fieldNumbers);
            Assert.IsTrue(fieldNumbers.Length == 2);
            Assert.IsTrue(fieldNumbers[0] == 1);
            Assert.IsTrue(fieldNumbers[1] == 65);

            formatter.FieldFormatters.Add(new BitMapFieldFormatter(
                                              0, 1, 64, HexadecimalBinaryEncoder.GetInstance()));

            fieldNumbers = formatter.GetBitMapFieldNumbers();
            Assert.IsNotNull(fieldNumbers);
            Assert.IsTrue(fieldNumbers.Length == 3);
            Assert.IsTrue(fieldNumbers[0] == 0);
            Assert.IsTrue(fieldNumbers[1] == 1);
            Assert.IsTrue(fieldNumbers[2] == 65);
        }