public static IAfterCallSpecifiedWithOutAndRefParametersConfiguration ReturnsLazily <T>(this IReturnValueConfiguration <Task <T> > configuration, Func <T> valueProducer) { Guard.AgainstNull(configuration, "configuration"); Guard.AgainstNull(valueProducer, "valueProducer"); return(configuration.ReturnsLazily(x => TaskHelper.FromResult(valueProducer()))); }
public static IAfterCallConfiguredWithOutAndRefParametersConfiguration <IReturnValueConfiguration <T> > ReturnsLazily <T>(this IReturnValueConfiguration <T> configuration, Func <T> valueProducer) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(valueProducer, nameof(valueProducer)); return(configuration.ReturnsLazily(x => valueProducer())); }
/// <summary> /// Configures the call to return the next value from the specified sequence each time it's called. /// After the sequence has been exhausted, the call will revert to the previously configured behavior. /// </summary> /// <typeparam name="T">The type of return value.</typeparam> /// <param name="configuration">The call configuration to extend.</param> /// <param name="values">The values to return in sequence.</param> public static void ReturnsNextFromSequence <T>(this IReturnValueConfiguration <T> configuration, params T[] values) { Guard.AgainstNull(configuration, "configuration"); var queue = new Queue <T>(values); configuration.ReturnsLazily(x => queue.Dequeue()).NumberOfTimes(queue.Count); }
ReturnsLazily <TReturnType, T1, T2, T3, T4>(this IReturnValueConfiguration <TReturnType> configuration, Func <T1, T2, T3, T4, TReturnType> valueProducer) { return(configuration.ReturnsLazily(call => { AssertThatSignaturesAreEqual(call.Method, valueProducer.Method, NameOfReturnsLazilyFeature); return valueProducer(call.GetArgument <T1>(0), call.GetArgument <T2>(1), call.GetArgument <T3>(2), call.GetArgument <T4>(3)); })); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <ValueTask <T> > > ThrowsAsync <T, T1, T2>( this IReturnValueConfiguration <ValueTask <T> > configuration, Func <T1, T2, Exception> exceptionFactory) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exceptionFactory, nameof(exceptionFactory)); return(configuration.ReturnsLazily((T1 arg1, T2 arg2) => new ValueTask <T>(TaskHelper.FromException <T>(exceptionFactory(arg1, arg2))))); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <ValueTask <T> > > ThrowsAsync <T, T1, T2, T3, T4, T5, T6, T7, T8>( this IReturnValueConfiguration <ValueTask <T> > configuration, Func <T1, T2, T3, T4, T5, T6, T7, T8, Exception> exceptionFactory) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exceptionFactory, nameof(exceptionFactory)); return(configuration.ReturnsLazily((T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) => new ValueTask <T>(TaskHelper.FromException <T>(exceptionFactory(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))))); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <Task> > ThrowsAsync <T1>( this IReturnValueConfiguration <Task> configuration, Func <T1, Exception> exceptionFactory) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exceptionFactory, nameof(exceptionFactory)); return(configuration.ReturnsLazily((T1 arg1) => TaskHelper.FromException(exceptionFactory(arg1)))); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <Task> > ThrowsAsync( this IReturnValueConfiguration <Task> configuration, Exception exception) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exception, nameof(exception)); return(configuration.ReturnsLazily(call => TaskHelper.FromException(exception))); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <Task <T> > > ThrowsAsync <T>( this IReturnValueConfiguration <Task <T> > configuration, Func <IFakeObjectCall, Exception> exceptionFactory) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exceptionFactory, nameof(exceptionFactory)); return(configuration.ReturnsLazily(call => TaskHelper.FromException <T>(exceptionFactory(call)))); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <ValueTask> > ThrowsAsync( this IReturnValueConfiguration <ValueTask> configuration, Func <Exception> exceptionFactory) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exceptionFactory, nameof(exceptionFactory)); return(configuration.ReturnsLazily(call => new ValueTask(TaskHelper.FromException(exceptionFactory())))); }
public static void ReturnsNextFromSequence <T>(this IReturnValueConfiguration <Task <T> > configuration, params T[] values) { Guard.AgainstNull(configuration, "configuration"); var taskValues = values.Select(value => TaskHelper.FromResult(value)); var queue = new Queue <Task <T> >(taskValues); configuration.ReturnsLazily(x => queue.Dequeue()).NumberOfTimes(queue.Count); }
public static IAfterCallConfiguredConfiguration <IReturnValueConfiguration <Task> > ThrowsAsync <T1, T2, T3, T4, T5, T6>( this IReturnValueConfiguration <Task> configuration, Func <T1, T2, T3, T4, T5, T6, Exception> exceptionFactory) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(exceptionFactory, nameof(exceptionFactory)); return (configuration.ReturnsLazily( (T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) => TaskHelper.FromException(exceptionFactory(arg1, arg2, arg3, arg4, arg5, arg6)))); }
ReturnsLazily <TReturnType, T1, T2, T3, T4>(this IReturnValueConfiguration <Task <TReturnType> > configuration, Func <T1, T2, T3, T4, TReturnType> valueProducer) { Guard.AgainstNull(configuration, "configuration"); return(configuration.ReturnsLazily(call => { ValueProducerSignatureHelper.AssertThatValueProducerSignatureSatisfiesCallSignature(call.Method, valueProducer.Method, NameOfReturnsLazilyFeature); return TaskHelper.FromResult(valueProducer(call.GetArgument <T1>(0), call.GetArgument <T2>(1), call.GetArgument <T3>(2), call.GetArgument <T4>(3))); })); }
ReturnsLazily <TReturnType, T1>(this IReturnValueConfiguration <TReturnType> configuration, Func <T1, TReturnType> valueProducer) { Guard.AgainstNull(configuration, "configuration"); return(configuration.ReturnsLazily(call => { ValueProducerSignatureHelper.AssertThatValueProducerSignatureSatisfiesCallSignature(call.Method, valueProducer.Method, NameOfReturnsLazilyFeature); return valueProducer(call.GetArgument <T1>(0)); })); }
ReturnsLazily <TReturnType, T1, T2, T3, T4, T5, T6, T7, T8>(this IReturnValueConfiguration <TReturnType> configuration, Func <T1, T2, T3, T4, T5, T6, T7, T8, TReturnType> valueProducer) { Guard.AgainstNull(configuration, nameof(configuration)); return(configuration.ReturnsLazily(call => { ValueProducerSignatureHelper.AssertThatValueProducerSignatureSatisfiesCallSignature(call.Method, valueProducer.GetMethodInfo(), NameOfReturnsLazilyFeature); return valueProducer(call.GetArgument <T1>(0), call.GetArgument <T2>(1), call.GetArgument <T3>(2), call.GetArgument <T4>(3), call.GetArgument <T5>(4), call.GetArgument <T6>(5), call.GetArgument <T7>(6), call.GetArgument <T8>(7)); })); }
ReturnsLazily <TReturnType, T1>(this IReturnValueConfiguration <Task <TReturnType> > configuration, Func <T1, TReturnType> valueProducer) { Guard.AgainstNull(configuration, nameof(configuration)); Guard.AgainstNull(valueProducer, nameof(valueProducer)); return(configuration.ReturnsLazily(call => { ValueProducerSignatureHelper.AssertThatValueProducerSignatureSatisfiesCallSignature(call.Method, valueProducer.GetMethodInfo(), NameOfReturnsLazilyFeature); return TaskHelper.FromResult(valueProducer(call.GetArgument <T1>(0))); })); }
public static IAfterCallSpecifiedWithOutAndRefParametersConfiguration Returns <T>(this IReturnValueConfiguration <Task <T> > configuration, T value) { Guard.AgainstNull(configuration, "configuration"); return(configuration.ReturnsLazily(() => value)); }
public static IAfterCallConfiguredWithOutAndRefParametersConfiguration <IReturnValueConfiguration <Task <T> > > Returns <T>(this IReturnValueConfiguration <Task <T> > configuration, T value) { Guard.AgainstNull(configuration, nameof(configuration)); return(configuration.ReturnsLazily(() => value)); }