public void LoadOneScriptfileBehind() { var mainViewModel = new MainViewModel(); Assert.AreEqual(0, mainViewModel.DocumentItems.Count); var file = StepBroMain.LoadScriptFile(new object(), @"C:\SW_development\Private\StepBro\examples\scripts\Demo Procedure.sbs"); Assert.AreEqual(1, mainViewModel.DocumentItems.Count); Assert.IsFalse(mainViewModel.DocumentItems[0].IsOpen); }
private static int Main(string[] args) { object consoleResourceUserObject = new object(); int retval = 0; Console.WriteLine("StepBro console application. Type 'stepbro --help' to show the help text."); m_commandLineOptions = StepBro.Core.General.CommandLineParser.Parse <CommandLineOptions>(null, args); if (m_commandLineOptions.HasParsingErrors) { return(-1); } try { StepBroMain.Initialize(); if (m_commandLineOptions.Verbose) { var logSinkManager = StepBro.Core.Main.GetService <ILogSinkManager>(); logSinkManager.Add(new ConsoleLogSink()); } if (!String.IsNullOrEmpty(m_commandLineOptions.InputFile)) { if (m_commandLineOptions.Verbose) { Console.WriteLine("Filename: {0}", m_commandLineOptions.InputFile); } IScriptFile file = null; try { file = StepBroMain.LoadScriptFile(consoleResourceUserObject, m_commandLineOptions.InputFile); if (file == null) { retval = -1; Console.WriteLine("Error: Loading script file failed ( " + m_commandLineOptions.InputFile + " )"); } } catch (Exception ex) { retval = -1; Console.WriteLine("Error: Loading script file failed: " + ex.GetType().Name + ", " + ex.Message); } if (file != null) { var parsingSuccess = StepBroMain.ParseFiles(true); if (parsingSuccess) { if (!String.IsNullOrEmpty(m_commandLineOptions.TargetElement)) { IFileElement element = StepBroMain.TryFindFileElement(m_commandLineOptions.TargetElement); if (element != null && element is IFileProcedure) { var procedure = element as IFileProcedure; object[] arguments = m_commandLineOptions?.Arguments.Select( (a) => StepBroMain.ParseExpression(procedure?.ParentFile, a)).ToArray(); try { object result = StepBroMain.ExecuteProcedure(procedure, arguments); if (result != null) { Console.WriteLine("Procedure execution ended. Result: " + result.ToString()); } else { Console.WriteLine("Procedure execution ended."); } } catch (TargetParameterCountException) { retval = -1; Console.WriteLine("Error: The number of arguments does not match the target procedure."); } } else if (element != null && element is ITestList) { throw new NotImplementedException("Handling of test list tarteg not implemented."); } else { retval = -1; if (element == null) { Console.WriteLine($"Error: File element named '{m_commandLineOptions.TargetElement} was not found."); } else { Console.WriteLine($"Error: File element type for '{m_commandLineOptions.TargetElement} cannot be used as an execution target."); } } } } else { Console.WriteLine("Parsing errors!"); foreach (var err in file.Errors.GetList()) { if (!err.JustWarning) { Console.WriteLine($" Line {err.Line}: {err.Message}"); } } retval = -1; } } } else { // If no file should be opened, what then? retval = -1; Console.WriteLine("Error: File could not be opened."); } } catch (Exception ex) { Console.WriteLine($"Error: {ex.GetType().Name}, {ex.Message}"); retval = -1; } finally { StepBroMain.Deinitialize(); } if (m_commandLineOptions.AwaitKeypress) { Console.WriteLine("<press any key to continue>"); while (!Console.KeyAvailable) { System.Threading.Thread.Sleep(25); } Console.ReadKey(); } return(retval); }