Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
 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());
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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); });
        }
Пример #8
0
        /// <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;
        }
Пример #9
0
        /// <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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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);
        }
Пример #13
0
 public void OnMessage(QuickFix.FIX42.News n, SessionID s)
 {
 }
Пример #14
0
 public void OnMessage(QuickFix.FIX42.News msg, SessionID s)
 {
     CrackedNews42 = true;
 }
Пример #15
0
        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);
        }
Пример #16
0
        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());
        }
Пример #17
0
        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);
        }
Пример #18
0
        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);
        }
Пример #19
0
        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);
        }
Пример #20
0
 public void OnMessage(QuickFix.FIX42.News n, SessionID sessionID)
 {
     _fix42MessageHandler.OnMessage(n, sessionID);
 }
Пример #21
0
 public void OnMessage(QuickFix.FIX42.News news, SessionID sessionID)
 {
     ProcessNews(news, sessionID);
 }