private async Task <CompositeStepContext> InvokeStepMethodAsync() { CompositeStepContext result; var ctx = AsyncStepSynchronizationContext.InstallNew(); try { result = await _stepInvocation.Invoke(Context, PrepareParameters()); VerifyParameters(); } catch (Exception e) { if (ScenarioExecutionException.TryWrap(e, out var wrapped)) { throw wrapped; } throw; } finally { UpdateNameDetails(); ctx.RestoreOriginal(); await ctx.WaitForTasksAsync(); } return(result); }
private async Task RunStepAsync() { IStepResultDescriptor result; var ctx = AsyncStepSynchronizationContext.InstallNew(); try { var args = PrepareArguments(); result = await _invocation.Invoke(Context, args); VerifyArguments(); } catch (Exception e) { if (ScenarioExecutionException.TryWrap(e, out var wrapped)) { throw wrapped; } throw; } finally { UpdateNameDetails(); ctx.RestoreOriginal(); await ctx.WaitForTasksAsync(); } await InvokeSubStepsAsync(result); }
public async Task ExecuteAsync() { try { var task = _enumerator.MoveNext() ? _enumerator.Current.Invoke(_target, ExecuteAsync) : _targetInvocation.Invoke(); await ScenarioExecutionFlow.WrapScenarioExceptions(task); } catch (Exception ex) { if (ScenarioExecutionException.TryWrap(ex, out var wrapped)) { throw wrapped; } throw; } }