Example #1
0
        public int Run(Options options)
        {
            if (options.Scenario != null)
            {
                endpointProvider.ServerBaseUrl = options.ListenUrl;
                if (options.ClientUrl != null && options.ClientUrl.Length > 0)
                    endpointProvider.ClientEndpoint = new Queue<string>(options.ClientUrl);
                endpointProvider.Username = options.Username;
                endpointProvider.Password = options.Password;
                endpointProvider.SkipAuthentication = options.SkipAuthentication;

                if (options.UseSoap11)
                {
                    endpointProvider.MessageVersion = MessageVersion.Soap11WSAddressing10;
                }

                try
                {
                    scenarioRunner.Run(options.Scenario, options.ScenarioArguments, options.ReceiverParty);
                    output.Display(new ResultModel
                    {
                        Result = Result.Pass
                    });
                }
                catch (Exception e)
                {
                    var baseException = e.GetBaseException();
                    var failException = baseException as FailException;
                    logger.Error(string.Format("Exception:\n{0}", e));
                    if (failException != null)
                    {
                        logger.Error(string.Format("Wrapped Exception:\n{0}", failException.WrappedException));
                    }
                    output.Display(new ResultModel
                    {
                        Result = Result.Fail,
                        Message = (failException ?? e).ToString()
                    });
                    return 1;
                }
            }
            else if (options.ListScenarios)
            {
                var helpText = new HelpText();
                foreach (var scenario in scenarioTypeFinder.Methods.Keys)
                {
                    helpText.AddPreOptionsLine(scenario);
                    foreach (var method in scenarioTypeFinder.Methods[scenario])
                    {
                        var parameters = new List<string>();
                        for (int i = 0; i < method.GetParameters().Length; i++)
                        {
                            parameters.Add(method.GetParameters()[i].Name);
                        }
                        helpText.AddPreOptionsLine(string.Format("|- {0}({1})", method.Name, string.Join(",", parameters)));
                    }
                    helpText.AddPreOptionsLine(Environment.NewLine);
                }
                output.String(helpText, log: false);
                return 1;
            }
            else if (options.ScenarioInfo != null)
            {
                throw new NotImplementedException();
            }
            else
            {
                output.String(options.GetUsage(), log: false);
                return 1;
            }

            return 0;
        }
Example #2
0
        static int Main(string[] args)
        {
            var parser = GetParser();
            var options = new Options();

            if (!parser.ParseArguments(args, options))
            {
                Console.Out.Write(options.GetUsage());
                return 1;
            }

            SetupLogging(args, options);
            Container = CreateContainer();
            var program = Container.Resolve<Program>();
            return program.Run(options);
        }