/// <inheritdoc/> protected override TResult Implementation <TResult>(Func <Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { return(MonkeyEngine.InjectBehaviourImplementation( action, context, cancellationToken, (ctx, ct) => SystemClock.Sleep(_latencyProvider(ctx), DefaultCancellationForInjectedLatency), InjectionRate, Enabled)); }
/// <inheritdoc/> protected override TResult Implementation <TResult>(Func <Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { return(MonkeyEngine.InjectBehaviourImplementation( action, context, cancellationToken, (ctx, ct) => _behaviour(ctx, ct), InjectionRate, Enabled)); }
/// <inheritdoc/> protected override TResult Implementation <TResult>(Func <Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { return(MonkeyEngine.InjectExceptionImplementation( action, context, cancellationToken, _faultProvider, InjectionRate, Enabled)); }
/// <inheritdoc/> protected override TResult Implementation <TResult>(Func <Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { return(MonkeyEngine.InjectBehaviourImplementation( action, context, cancellationToken, (ctx, ct) => { var latency = _latencyProvider(ctx, ct); // to prevent inject latency if token was signaled on latency configuration delegate. cancellationToken.ThrowIfCancellationRequested(); SystemClock.Sleep(latency, cancellationToken); }, InjectionRate, Enabled)); }