public Application(IGroceryKiosk groceryKiosk, IUserInput userInput, IFormatOutput output, ILog logger) { _groceryKiosk = groceryKiosk; _userInput = userInput; _output = output; _logger = logger; }
public void Execute(IProcessSteps stepProcessor, IProcessScenarioHooks hookProcessor, IFormatOutput outputFormatter, int lineNumber) { var executor = GetExecutableAt(lineNumber); if (!(executor is Feature)) outputFormatter.WriteFeatureHeading(this); executor.Execute(stepProcessor, hookProcessor, outputFormatter); }
public void Execute(IProcessSteps stepProcessor, IProcessScenarioHooks hookProcessor, IFormatOutput outputFormatter) { outputFormatter.WriteFeatureHeading(this); outputFormatter.SkipWritingBackground = false; foreach (var item in Items) { item.Execute(stepProcessor, hookProcessor, outputFormatter); } }
public override void Execute(IProcessSteps stepProcessor, IProcessScenarioHooks hookProcessor, IFormatOutput outputFormatter) { hookProcessor.ProcessBeforeScenarioHooks(Tags); if(Feature.Background != null) Feature.Background.Execute(stepProcessor, hookProcessor, outputFormatter); outputFormatter.SkippingSteps = false; outputFormatter.WriteScenarioTitle(this); foreach (var step in Steps) { step.Execute(stepProcessor, hookProcessor, outputFormatter); } var result = new ScenarioResult(null); //TODO: Load an appropriate scenarioResult here... hookProcessor.ProcessAfterScenarioHooks(Tags, result); outputFormatter.WriteLineBreak(); }
public void Execute(IProcessSteps stepProcessor, IProcessScenarioHooks hookProcessor, IFormatOutput outputFormatter) { //if step is in background, and background has ran once,then dont write it. if (StepSequence is Background && outputFormatter.SkipWritingBackground) { stepProcessor.ProcessStep(this); return; } if (!(StepSequence is Background)) outputFormatter.SkipWritingBackground = true; if (outputFormatter.SkippingSteps) { outputFormatter.WriteSkippedFeatureLine(this); stepProcessor.CheckForMissingStep(this); return; } outputFormatter.SkippingSteps = true; var result = stepProcessor.ProcessStep(this); switch (result.ResultCode) { case StepRunResultCode.Passed: outputFormatter.SkippingSteps = false; outputFormatter.WritePassedFeatureLine(this, result.MatchedStepDefinition); break; case StepRunResultCode.Failed: outputFormatter.WriteException(this, result.Exception); break; case StepRunResultCode.Pending: outputFormatter.WritePendingFeatureLine(this, result.Exception); break; case StepRunResultCode.Missing: outputFormatter.WriteMissingFeatureLine(this); break; default: throw new ArgumentOutOfRangeException(); } }
public void Execute(IProcessSteps stepProcessor, IProcessScenarioHooks hookProcessor, IFormatOutput outputFormatter, IDictionary<string, string> dictionary) { var newBody = Body; foreach (var key in dictionary.Keys) newBody = newBody.Replace("<" + key + ">", dictionary[key]); var newFeatureStep = new Step(this) { Body = newBody }; newFeatureStep.Execute(stepProcessor, hookProcessor, outputFormatter); }
private void Run(string[] args) { Options = new nStepOptions().Parse<nStepOptions>(args); if (Options.Debug) { Console.WriteLine("Please attach the .Net debugger to continue..."); int seconds = 0; while (!System.Diagnostics.Debugger.IsAttached) { Thread.Sleep(1000); seconds += 1; if (seconds > 60) return; } Console.Clear(); } if (Options.Rerun) Options = ReadRerunFile(); WriteRerunFile(Options); AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; formatter = new ConsoleOutputFormatter("nStep", new CSharpSyntaxSuggester()); InitializeThenRun(Options.Assemblies.Select(x => new FileInfo(x)).ToList(), ()=>LoadAndExecuteFeatureFile(Options.FeatureFiles)); formatter.WriteResults(StepMother); }
public abstract void Execute(IProcessSteps stepProcessor, IProcessScenarioHooks hookProcessor, IFormatOutput outputFormatter);
/// <summary> /// Genera Salida /// </summary> /// <param name="oSalida">Intefaz de salida</param> /// <returns>IEnumerable con el objeto de salida que se va generando</returns> public IEnumerable <IOutputValue> WriteOutput(IFormatOutput oOutput) { Output = oOutput; return(Output.Write(this)); }