public void TickTestCase()
        {
            string sampleInput = "Tick IBM Ask 1.22 100 Bid 1.24 98 Last 1.23 99 Depth 1";

            bool tickArrived     = false;
            var  manualTickEvent = new ManualResetEvent(false);

            _dataProcessor.TickArrived +=
                delegate(Tick obj)
            {
                tickArrived = true;
                manualTickEvent.Set();
            };

            _dataProcessor.ProcessIncomingMessage(sampleInput);
            manualTickEvent.WaitOne(3000, false);

            Assert.AreEqual(true, tickArrived, "Tick Recieved from Simulated Data Processor");
        }
        /// <summary>
        /// Start reading for input data
        /// </summary>
        private void ReadInput()
        {
            while (_isConnected)
            {
                {
                    ConsoleWriter.WriteLine(ConsoleColor.Green, "Enter Input");
                    string response = ConsoleWriter.Prompt();
                    if (response != null)
                    {
                        if (response.ToLower().Equals("exit"))
                        {
                            Stop();
                            break;
                        }

                        // Process incoming message
                        switch (response.Trim().ToLower())
                        {
                        case "help":
                            _dataProcessor.DisplayHelp();
                            break;

                        case "sub info tick":
                            _dataProcessor.DisplayTickSubscriptionInfo(_subscribedSecurities);
                            break;

                        case "sub info bar":
                            _dataProcessor.DisplayBarSubscriptionInfo(_subscribedBars);
                            break;

                        case "start":
                            StartTickDataStream();
                            break;

                        default:
                            _dataProcessor.ProcessIncomingMessage(response);
                            break;
                        }
                    }
                }
            }
        }