public void TestGUIIteration() { var appData = Factory.Settings["PriceDataFolder"]; File.Delete(appData + @"\ServerCache\IBM.tck"); var config = new StarterConfig(); StarterConfigView form = null; StartGUI(config, out form); try { config.WaitComplete(2); config.SymbolList = "IBM"; StrategyBaseTest.CleanupFiles(config.SymbolList, null); config.DefaultPeriod = 10; config.DefaultBarUnit = BarUnit.Second.ToString(); config.ModelLoader = "Example: Breakout Reversal"; config.StarterName = "Realtime Operation (Demo or Live)"; config.Start(); config.WaitComplete(30, () => { return(form.PortfolioDocs.Count > 0); }); Assert.Greater(form.PortfolioDocs.Count, 0); var chart = form.PortfolioDocs[0].ChartControl; config.WaitComplete(30, () => { return(chart.IsDrawn); }); var pane = chart.DataGraph.MasterPane.PaneList[0]; Assert.IsNotNull(pane.CurveList); config.WaitComplete(30, () => { return(pane.CurveList.Count > 0); }); Assert.Greater(pane.CurveList.Count, 0); var chartBars = (OHLCBarItem)pane.CurveList[0]; config.WaitComplete(60, () => { return(chartBars.NPts >= 3); }); Assert.GreaterOrEqual(chartBars.NPts, 3); config.Stop(); config.WaitComplete(30, () => { return(!config.CommandWorker.IsBusy); }); Assert.IsFalse(config.CommandWorker.IsBusy, "ProcessWorker.Busy"); } catch (Exception ex) { log.Error("Test failed with error: " + ex.Message, ex); Environment.Exit(1); } finally { execute.Exit(); guiThread.Join(); } }