public void issue56_GetGroup_type2() { // boring message construction stuff var dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX44.xml"); string[] msgFields = { "8=FIX.4.2", "9=87", "35=B", "34=3", "49=CLIENT1", "52=20111012-22:15:55.474", "56=EXECUTOR", "148=AAAAAAA", "33=2", "58=L1", "58=L2", "10=016" }; string msgStr = String.Join(Message.SOH, msgFields) + Message.SOH; QuickFix.FIX42.News msg = new QuickFix.FIX42.News(); msg.FromString(msgStr, false, dd, dd, _defaultMsgFactory); Assert.AreEqual(2, msg.GroupCount(Tags.LinesOfText)); // for sanity // the test QuickFix.FIX42.News.LinesOfTextGroup grp = new QuickFix.FIX42.News.LinesOfTextGroup(); // for return value var rv1 = msg.GetGroup(1, grp); Assert.AreSame(rv1, grp); Assert.IsInstanceOf <QuickFix.FIX42.News.LinesOfTextGroup>(rv1); Assert.AreEqual("L1", grp.Text.Obj); var rv2 = msg.GetGroup(2, grp); Assert.AreSame(rv2, grp); Assert.IsInstanceOf <QuickFix.FIX42.News.LinesOfTextGroup>(rv2); Assert.AreEqual("L2", grp.Text.Obj); }
public void IsAdmin_IsApp() { // issue 173 var dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX42.xml"); string[] newsFields = { "8=FIX4.2", "9=5", "35=B", "10=133" }; string newsStr = String.Join(Message.SOH, newsFields) + Message.SOH; QuickFix.FIX42.News news = new QuickFix.FIX42.News(); news.FromString(newsStr, true, dd, dd, _defaultMsgFactory); string[] hbFields = { "8=FIX.4.2", "9=16", "35=0", "34=3", "49=TW", "10=1" }; string hbStr = String.Join(Message.SOH, hbFields) + Message.SOH; QuickFix.FIX42.Heartbeat heartbeat = new QuickFix.FIX42.Heartbeat(); heartbeat.FromString(hbStr, true, dd, dd, _defaultMsgFactory); Assert.False(news.IsAdmin()); //Assert.True(news.IsApp()); //Assert.True(heartbeat.IsAdmin()); Assert.False(heartbeat.IsApp()); }
public void OnMessage(QuickFix.FIX42.News msg, QuickFix.SessionID s) { if (msg.Headline.Obj == "TESTECHO") { Send(MessageCreator42.News("ECHORESPONSE")); } }
// commands private void SendNews(object ignored) { try { Trace.WriteLine(String.Format("Send news: Head=[{0}] Line1=[{1}]", this.Headline, this.Line1Text)); string h = this.Headline; IList <string> lines = new List <string>(); if (this.IsLine1Enabled) { lines.Add(this.Line1Text); } if (this.IsLine2Enabled) { lines.Add(this.Line2Text); } if (this.IsLine3Enabled) { lines.Add(this.Line3Text); } QuickFix.FIX42.News news = MessageCreator42.News(h, lines); _qfapp.Send(news); } catch (Exception e) { Trace.WriteLine("Failed to send news message.\n" + e.ToString()); } }
public void RepeatingGroup() { QuickFix.DataDictionary.DataDictionary dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX42.xml"); QuickFix.FIX42.News news = new QuickFix.FIX42.News(new QuickFix.Fields.Headline("Foo headline")); QuickFix.FIX42.News.LinesOfTextGroup group1 = new QuickFix.FIX42.News.LinesOfTextGroup(); group1.Text = new QuickFix.Fields.Text("line1"); group1.EncodedTextLen = new QuickFix.Fields.EncodedTextLen(3); group1.EncodedText = new QuickFix.Fields.EncodedText("aaa"); news.AddGroup(group1); QuickFix.FIX42.News.LinesOfTextGroup group2 = new QuickFix.FIX42.News.LinesOfTextGroup(); group2.Text = new QuickFix.Fields.Text("line2"); group2.EncodedText = new QuickFix.Fields.EncodedText("bbb"); news.AddGroup(group2); string raw = news.ToString(); string nul = "\x01"; StringAssert.Contains( nul + "33=2" + nul + "58=line1" + nul + "354=3" + nul + "355=aaa" + nul + "58=line2" + nul + "355=bbb", raw); }
public void ChecksumIsLastFieldOfTrailer() { // issue 473 QuickFix.FIX42.News msg = new QuickFix.FIX42.News(new Headline("foobar")); msg.LinesOfText = new LinesOfText(0); msg.Trailer.SetField(new Signature("woot")); msg.Trailer.SetField(new SignatureLength(4)); string foo = msg.ToString().Replace(Message.SOH, "|"); StringAssert.EndsWith("|10=099|", foo); }
public void FromString_GroupDelimiterIssue() { // 349 QuickFix.DataDictionary.DataDictionary dd = new QuickFix.DataDictionary.DataDictionary(); dd.LoadFIXSpec("FIX42"); QuickFix.FIX42.News n = new QuickFix.FIX42.News(); string s = String.Join(Message.SOH, new string[] { "8=FIX.4.2", "9=91", "35=B", "34=2", "49=TW", "52=20111011-15:06:23.103", "56=ISLD", "148=headline", "33=3", "58=line1", "354=3", "355=uno", // first group, has delimiter "354=3", "355=dos", // second group, missing delimiter "354=4", "355=tres", // third group, also missing delimiter "10=193" }) + Message.SOH; Assert.Throws <RepeatedTagWithoutGroupDelimiterTagException>(delegate { n.FromString(s, true, dd, dd, _defaultMsgFactory); }); }
/// <summary> /// Create a News message. Nothing unexpected here. /// </summary> /// <param name="headline_str"></param> /// <param name="lines"></param> /// <returns></returns> static public QuickFix.FIX42.News News(string headline_str, IList<string> lines) { QuickFix.Fields.Headline headline = new QuickFix.Fields.Headline(headline_str); QuickFix.FIX42.News news = new QuickFix.FIX42.News(headline); QuickFix.FIX42.News.LinesOfTextGroup group = new QuickFix.FIX42.News.LinesOfTextGroup(); foreach (string s in lines) { group.Text = new QuickFix.Fields.Text(s); news.AddGroup(group); } if (lines.Count == 0) { QuickFix.Fields.LinesOfText noLines = new QuickFix.Fields.LinesOfText(0); news.SetField(noLines, true); } return news; }
/// <summary> /// Create a News message. Nothing unexpected here. /// </summary> /// <param name="headline_str"></param> /// <param name="lines"></param> /// <returns></returns> static public QuickFix.FIX42.News News(string headline_str, IList <string> lines) { QuickFix.Fields.Headline headline = new QuickFix.Fields.Headline(headline_str); QuickFix.FIX42.News news = new QuickFix.FIX42.News(headline); QuickFix.FIX42.News.LinesOfTextGroup group = new QuickFix.FIX42.News.LinesOfTextGroup(); foreach (string s in lines) { group.Text = new QuickFix.Fields.Text(s); news.AddGroup(group); } if (lines.Count == 0) { QuickFix.Fields.LinesOfText noLines = new QuickFix.Fields.LinesOfText(0); news.SetField(noLines, true); } return(news); }
public void RepeatingGroup_ReuseObject() { QuickFix.DataDictionary.DataDictionary dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX42.xml"); QuickFix.FIX42.News news = new QuickFix.FIX42.News(new QuickFix.Fields.Headline("Foo headline")); QuickFix.FIX42.News.LinesOfTextGroup group = new QuickFix.FIX42.News.LinesOfTextGroup(); group.Text = new QuickFix.Fields.Text("line1"); news.AddGroup(group); group.Text = new QuickFix.Fields.Text("line2"); news.AddGroup(group); string raw = news.ToString(); string nul = "\x01"; StringAssert.Contains( nul + "33=2" + nul + "58=line1" + nul + "58=line2", raw); }
public void issue56_GetGroup_by_reference() { // setup var dd = new QuickFix.DataDictionary.DataDictionary(); dd.LoadFIXSpec("FIX44"); string[] msgFields = { "8=FIX.4.2", "9=87", "35=B", "34=3", "49=CLIENT1", "52=20111012-22:15:55.474", "56=EXECUTOR", "148=AAAAAAA", "33=2", "58=L1", "58=L2", "10=016" }; string msgStr = String.Join(Message.SOH, msgFields) + Message.SOH; QuickFix.FIX42.News msg = new QuickFix.FIX42.News(); msg.FromString(msgStr, false, dd, dd, _defaultMsgFactory); Assert.AreEqual(2, msg.GroupCount(Tags.LinesOfText)); // for sanity // the test QuickFix.FIX42.News.LinesOfTextGroup grp = new QuickFix.FIX42.News.LinesOfTextGroup(); // for return value msg.GetGroup(1, grp); Assert.AreEqual("L1", grp.Text.Obj); msg.GetGroup(2, grp); Assert.AreEqual("L2", grp.Text.Obj); }
public void issue56_GetGroup_by_tag_and_return() { // setup var dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX44.xml"); string[] msgFields = { "8=FIX.4.2", "9=87", "35=B", "34=3", "49=CLIENT1", "52=20111012-22:15:55.474", "56=EXECUTOR", "148=AAAAAAA", "33=2", "58=L1", "58=L2", "10=016" }; string msgStr = String.Join(Message.SOH, msgFields) + Message.SOH; QuickFix.FIX42.News msg = new QuickFix.FIX42.News(); msg.FromString(msgStr, false, dd, dd, _defaultMsgFactory); Assert.AreEqual(2, msg.GroupCount(Tags.LinesOfText)); // for sanity // the test var grp1 = msg.GetGroup(1, Tags.LinesOfText); Assert.IsInstanceOf <QuickFix.FIX42.News.LinesOfTextGroup>(grp1); Assert.AreEqual("L1", (grp1 as QuickFix.FIX42.News.LinesOfTextGroup).Text.Obj); var grp2 = msg.GetGroup(2, Tags.LinesOfText); Assert.IsInstanceOf <QuickFix.FIX42.News.LinesOfTextGroup>(grp2); Assert.AreEqual("L2", (grp2 as QuickFix.FIX42.News.LinesOfTextGroup).Text.Obj); }
public void OnMessage(QuickFix.FIX42.News n, SessionID s) { }
public void OnMessage(QuickFix.FIX42.News msg, SessionID s) { CrackedNews42 = true; }
public void issue56_GetGroup_type1() { // boring message construction stuff var dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX44.xml"); string[] msgFields = { "8=FIX.4.2", "9=87", "35=B", "34=3", "49=CLIENT1", "52=20111012-22:15:55.474", "56=EXECUTOR", "148=AAAAAAA", "33=2", "58=L1", "58=L2", "10=016" }; string msgStr = String.Join(Message.SOH, msgFields) + Message.SOH; QuickFix.FIX42.News msg = new QuickFix.FIX42.News(); msg.FromString(msgStr, false, dd, dd, _defaultMsgFactory); Assert.AreEqual(2, msg.GroupCount(Tags.LinesOfText)); // for sanity // the test var grp1 = msg.GetGroup(1, Tags.LinesOfText); Assert.IsInstanceOf<QuickFix.FIX42.News.LinesOfTextGroup>(grp1); Assert.AreEqual("L1", (grp1 as QuickFix.FIX42.News.LinesOfTextGroup).Text.Obj); var grp2 = msg.GetGroup(2, Tags.LinesOfText); Assert.IsInstanceOf<QuickFix.FIX42.News.LinesOfTextGroup>(grp2); Assert.AreEqual("L2", (grp2 as QuickFix.FIX42.News.LinesOfTextGroup).Text.Obj); }
public void issue56_GetGroup_by_reference() { // setup var dd = new QuickFix.DataDictionary.DataDictionary(); dd.Load("../../../spec/fix/FIX44.xml"); string[] msgFields = { "8=FIX.4.2", "9=87", "35=B", "34=3", "49=CLIENT1", "52=20111012-22:15:55.474", "56=EXECUTOR", "148=AAAAAAA", "33=2", "58=L1", "58=L2", "10=016" }; string msgStr = String.Join(Message.SOH, msgFields) + Message.SOH; QuickFix.FIX42.News msg = new QuickFix.FIX42.News(); msg.FromString(msgStr, false, dd, dd, _defaultMsgFactory); Assert.AreEqual(2, msg.GroupCount(Tags.LinesOfText)); // for sanity // the test QuickFix.FIX42.News.LinesOfTextGroup grp = new QuickFix.FIX42.News.LinesOfTextGroup(); // for return value msg.GetGroup(1, grp); Assert.AreEqual("L1", grp.Text.Obj); msg.GetGroup(2, grp); Assert.AreEqual("L2", grp.Text.Obj); }
public void OnMessage(QuickFix.FIX42.News n, SessionID sessionID) { _fix42MessageHandler.OnMessage(n, sessionID); }
public void OnMessage(QuickFix.FIX42.News news, SessionID sessionID) { ProcessNews(news, sessionID); }