public void ToXMLTest() { string str1 = "8=FIX.4.2\x01" + "9=55\x01" + "35=0\x01" + "34=3\x01" + "49=TW\x01" + "52=20000426-12:05:06\x01" + "56=ISLD\x01" + "1=acct123\x01" + "10=123\x01"; Message msg = new Message(); try { msg.FromString(str1, true, null, null, _defaultMsgFactory); } catch (InvalidMessage e) { Assert.Fail("Unexpected exception (InvalidMessage): " + e.Message); } string xmlDoc = msg.toXML(); XDocument doc = null; try { doc = XDocument.Parse(xmlDoc); } catch (Exception e) { Assert.Fail("Badly formed XML generated: " + e.Message); } var fields = doc.Descendants("message").Descendants("body") .Select(field => new { number = field.Descendants("field").Attributes("number").Single().Value, value = field.Descendants("field").Single().Value }) .ToList(); foreach (var elem in fields) { int number = 0; if (int.TryParse(elem.number.ToString(), out number) == false) { Assert.Fail("should be number " + elem.number.ToString() + " " + elem.value.ToString()); } else { string value = msg.GetField(number); Assert.That(value, Is.EqualTo(elem.value)); } } }