public void SendTest()
        {
            Logon();

            IMessage messageSend = factory.CreateInstance("D");

            for (int i = 10000; i < 10100; i++)
            {
                messageSend.Fields.Add(new Field(i, "VALUE" + i));
            }

            Assert.AreEqual(100, messageSend.Fields.Count, "Field Count Send");

            engineConnect.Send(messageSend);

            IMessage messageReceive = null;
            bool     received       = false;
            DateTime timeout        = DateTime.Now.AddSeconds(1);

            while (!received && timeout > DateTime.Now)
            {
                messageReceive = listenReceiveQueue.DequeueBlocked(100);
                if (messageReceive != null)
                {
                    received = messageReceive.MsgSeqNum == messageSend.MsgSeqNum;
                }
            }

            Assert.IsTrue(received, "Receive message across engines");
            Assert.AreEqual(messageSend.Fields.Count, messageReceive.Fields.Count, "Field Count Receive");
        }
Beispiel #2
0
        public void ResetMsgSeqNumInWithExistingMessagesShouldPass()
        {
            _path = Path.GetTempPath();
            MessageFactoryFIX factory = new MessageFactoryFIX("FIX.4.2");

            if (File.Exists(_path + "TEST__TEST__00010101.LOG"))
            {
                File.Delete(_path + "TEST__TEST__00010101.LOG");
            }
            if (File.Exists(_path + "TEST__TEST__00010101.LDX"))
            {
                File.Delete(_path + "TEST__TEST__00010101.LDX");
            }

            MessageCacheFlatFile cache;

            cache = Create();
            for (int j = 1; j < 100; j++)
            {
                IMessage message = factory.CreateInstance("D");
                message.Direction = MessageDirection.In;
                message.MsgSeqNum = j;
                for (int i = 10000; i < 10100; i++)
                {
                    message.Fields.Add(new Field(i, "VALUE" + i));
                }
                factory.Build(message);
                cache.AddMessage(message);
            }
            Assert.AreEqual(99, cache.MsgSeqNumIn);
            cache.Close();

            cache = Create();
            cache.ResetMsgSeqNumIn(200);
            Assert.AreEqual(199, cache.MsgSeqNumIn);
            cache.Close();

            cache = Create();
            Assert.AreEqual(199, cache.MsgSeqNumIn);
            cache.ResetMsgSeqNumIn(300);
            Assert.AreEqual(299, cache.MsgSeqNumIn);
            cache.Close();

            cache = Create();
            Assert.AreEqual(299, cache.MsgSeqNumIn);
            cache.Close();
        }