public void Clone() { Iso8583Message message = new Iso8583Message(1200); // Add fields. for (int i = 0; i < _fields.Length; i++) { message.Fields.Add(_fields[i]); } message.Header = new StringMessageHeader("HEADER"); Iso8583Message cloned = ( Iso8583Message)message.Clone(); Assert.IsTrue(cloned.Fields.Count == message.Fields.Count); Assert.IsNotNull(cloned.Header); Assert.IsTrue(cloned.MessageTypeIdentifier == message.MessageTypeIdentifier); Assert.IsTrue(message.Header != cloned.Header); for (int i = 0; i < _fields.Length; i++) { Assert.IsTrue(message[_fields[i].FieldNumber] != cloned[_fields[i].FieldNumber]); } }
public static Iso8583Message checkProtectedClone(Iso8583Message m) { Iso8583Message pm = (Iso8583Message)m.Clone(); pm.Formatter = m.Formatter; int[] protectFields = { 2, 14, 35, 45, 52, 48, 126 }; for (int i = 0; i < protectFields.Length; i++) { int f = protectFields[i]; if (pm.Fields.Contains(f)) { pm.Fields.Add(f, protect(((Field)m.Fields[f]).Value.ToString())); } } return(pm); }