示例#1
0
        public TestTradeLink_WM() 
        {
            s = new TLServer_WM();
            s.newProviderName = Providers.TradeLink;
            s.newUnknownRequest += new UnknownMessageDelegate(s_newUnknownRequest);

            // make sure we select our own loopback, if other servers are running
            c = new TLClient_WM(false);
            int pi = -1;
            for (int i = 0; i < c.ProvidersAvailable.Length; i++)
            {
                long v = c.TLSend(MessageTypes.LOOPBACKSERVER, string.Empty, i);
                if (v==SPECIAL)
                    pi = i;
            }
            if (pi == -1) throw new Exception("unable to find test server");
            c.Mode(pi, false);
            
            // create a second client to verify order and fill copying work
            c2 = new TLClient_WM(false);
            c2.Mode(pi, false);

            // register server events (so server can process orders)
            s.newSendOrderRequest += new OrderDelegateStatus(tl_gotSrvFillRequest);

            // setup client events
            c.gotFill += new FillDelegate(tlclient_gotFill);
            c.gotOrder += new OrderDelegate(tlclient_gotOrder);
            c.gotTick += new TickDelegate(tlclient_gotTick);
            c.gotImbalance += new ImbalanceDelegate(c_gotImbalance);
            c.gotUnknownMessage+=new MessageDelegate(c_gotUnknownMessage);
            // setup second client events to check copying
            c2.gotFill += new FillDelegate(c2_gotFill);
            c2.gotOrder += new OrderDelegate(c2_gotOrder);
            c2.gotTick += new TickDelegate(c2_gotTick);

        }
示例#2
0
        public void setup()
        {
            
            //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            
            if (!isserverconok)
            {
                server = new TradeLink.Common.TLServer_WM();
                con = new IQFeedHelper(server);
                con.VerboseDebugging = verbosesetting;
                con.SendDebug += new DebugDelegate(g.d);
                // get login information
                var data = Util.getfile(loginfile, g.d);
                Assert.IsFalse(string.IsNullOrWhiteSpace(data), "no login info");
                var li = data.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                Assert.AreEqual(3, li.Length, "missing login info");
                // attempt to startup connection
                con.Start(li[userr], li[pwr], li[prodr], Util.TLBuild());
                // wait a moment
                Util.sleep(4000);
                Assert.IsTrue(isserverconok, "server connection failed");
            }

            if (isserverconok && !isclientconok)
            {
                var c = new TLClient_WM("tempiqclient", false);
                c.VerboseDebugging = verbosesetting;
                c.SendDebugEvent += new DebugDelegate(g.d);

                if (c.ProvidersAvailable[0]!= Providers.IQFeed)
                    throw new Exception("unable to find test server");
                c.Mode(0, false);
                client = c;


                client.gotUnknownMessage += new MessageDelegate(client_gotUnknownMessage);
               
                // verify
                Assert.IsTrue(isclientconok, "client connection failed");
            }
            // reset everything
            mt = new MessageTracker();
            mt.VerboseDebugging = verbosesetting; 
            blt = new BarListTracker();
            mt.BLT = blt;
            mt.SendDebug += new DebugDelegate(g.d);
            mt.GotNewBar += new SymBarIntervalDelegate(mt_GotNewBar);
            recvbarcount = 0;
            msgok = true;
            g.d("iqfeed started.");
            // wait a moment
            Util.sleep(1000);
        }