public void CopyTo()
        {
            Iso8583Message src = new Iso8583Message(1200);
            Iso8583Message dst = new Iso8583Message(1100);

            Assert.IsTrue(src.Fields.Count == 0);
            Assert.IsNull(src.Header);
            Assert.IsTrue(dst.Fields.Count == 0);
            Assert.IsNull(dst.Header);

            // Add fields.
            for (int i = 0; i < _fields.Length; i++)
            {
                src.Fields.Add(_fields[i]);
            }

            src.Header = new StringMessageHeader("HEADER");

            Assert.IsTrue(src.Fields.Count == _fields.Length);

            src.CopyTo(dst);

            Assert.IsTrue(src.MessageTypeIdentifier == dst.MessageTypeIdentifier);
            Assert.IsTrue(dst.Fields.Count == _fields.Length);
            Assert.IsNotNull(dst.Header);

            Assert.IsTrue(src.Header != dst.Header);
            for (int i = 0; i < _fields.Length; i++)
            {
                Assert.IsTrue(src[_fields[i].FieldNumber] !=
                              dst[_fields[i].FieldNumber]);
            }
        }
        public void CopyToWithSelection()
        {
            Iso8583Message src = new Iso8583Message(1200);
            Iso8583Message dst = new Iso8583Message(1100);

            Assert.IsTrue(src.Fields.Count == 0);
            Assert.IsNull(src.Header);
            Assert.IsTrue(dst.Fields.Count == 0);
            Assert.IsNull(dst.Header);

            // Add fields.
            for (int i = 0; i < _fields.Length; i++)
            {
                src.Fields.Add(_fields[i]);
            }

            src.Header = new StringMessageHeader("HEADER");

            Assert.IsTrue(src.Fields.Count == _fields.Length);

            int[] fields = { 1, 2, 3, 4, 5, 6, 7 };
            src.CopyTo(dst, fields);

            Assert.IsTrue(src.MessageTypeIdentifier == dst.MessageTypeIdentifier);

            Assert.IsTrue(dst.Fields.Count == 4);
            Assert.IsNotNull(dst.Header);
            Assert.IsNotNull(dst[1]);
            Assert.IsNotNull(dst[2]);
            Assert.IsNotNull(dst[3]);
            Assert.IsNotNull(dst[4]);
            Assert.IsNull(dst[5]);
            Assert.IsNull(dst[6]);
            Assert.IsNull(dst[7]);

            Assert.IsTrue(src.Header != dst.Header);
            Assert.IsTrue(src[1] != dst[1]);
        }