diff --git a/Source/Mockolate.SourceGenerators/Sources/Sources.ReturnsAsyncExtensions.cs b/Source/Mockolate.SourceGenerators/Sources/Sources.ReturnsAsyncExtensions.cs index 992e5c60..cf691390 100644 --- a/Source/Mockolate.SourceGenerators/Sources/Sources.ReturnsAsyncExtensions.cs +++ b/Source/Mockolate.SourceGenerators/Sources/Sources.ReturnsAsyncExtensions.cs @@ -33,7 +33,7 @@ namespace Mockolate; "\t/// Registers the for this method.") .AppendLine(); sb.Append("\t/// ").AppendLine(); - sb.Append("\tpublic static IReturnMethodSetup, ").Append(types) + sb.Append("\tpublic static IReturnMethodSetupReturnBuilder, ").Append(types) .Append("> ReturnsAsync(this IReturnMethodSetup, ") .Append(types).Append("> setup, TReturn returnValue)").AppendLine(); sb.Append("\t\t=> setup.Returns(Task.FromResult(returnValue));").AppendLine(); @@ -43,7 +43,7 @@ namespace Mockolate; "\t/// Registers an to setup the return value for this method.") .AppendLine(); sb.Append("\t/// ").AppendLine(); - sb.Append("\tpublic static IReturnMethodSetup, ").Append(types) + sb.Append("\tpublic static IReturnMethodSetupReturnBuilder, ").Append(types) .Append("> ReturnsAsync(this IReturnMethodSetup, ") .Append(types).Append("> setup, Func callback)").AppendLine(); sb.Append("\t\t=> setup.Returns(() => Task.FromResult(callback()));").AppendLine(); @@ -53,7 +53,7 @@ namespace Mockolate; "\t/// Registers an to setup the return value for this method.") .AppendLine(); sb.Append("\t/// ").AppendLine(); - sb.Append("\tpublic static IReturnMethodSetup, ").Append(types) + sb.Append("\tpublic static IReturnMethodSetupReturnBuilder, ").Append(types) .Append("> ReturnsAsync(this IReturnMethodSetup, ") .Append(types).Append("> setup, Func<").Append(types).Append(", TReturn> callback)").AppendLine(); sb.Append("\t\t=> setup.Returns((").Append(variables).Append(") => Task.FromResult(callback(") @@ -72,7 +72,7 @@ namespace Mockolate; "\t/// Registers the for this method.") .AppendLine(); sb.Append("\t/// ").AppendLine(); - sb.Append("\tpublic static IReturnMethodSetup, ").Append(types) + sb.Append("\tpublic static IReturnMethodSetupReturnBuilder, ").Append(types) .Append("> ReturnsAsync(this IReturnMethodSetup, ").Append(types) .Append("> setup, TReturn returnValue)").AppendLine(); @@ -83,7 +83,7 @@ namespace Mockolate; "\t/// Registers an to setup the return value for this method.") .AppendLine(); sb.Append("\t/// ").AppendLine(); - sb.Append("\tpublic static IReturnMethodSetup, ").Append(types) + sb.Append("\tpublic static IReturnMethodSetupReturnBuilder, ").Append(types) .Append("> ReturnsAsync(this IReturnMethodSetup, ").Append(types) .Append("> setup, Func callback)").AppendLine(); @@ -94,7 +94,7 @@ namespace Mockolate; "\t/// Registers an to setup the return value for this method.") .AppendLine(); sb.Append("\t/// ").AppendLine(); - sb.Append("\tpublic static IReturnMethodSetup, ").Append(types) + sb.Append("\tpublic static IReturnMethodSetupReturnBuilder, ").Append(types) .Append("> ReturnsAsync(this IReturnMethodSetup, ").Append(types).Append("> setup, Func<") .Append(types).Append(", TReturn> callback)").AppendLine(); diff --git a/Source/Mockolate/ReturnsAsyncExtensions.cs b/Source/Mockolate/ReturnsAsyncExtensions.cs index 096fc381..e400297f 100644 --- a/Source/Mockolate/ReturnsAsyncExtensions.cs +++ b/Source/Mockolate/ReturnsAsyncExtensions.cs @@ -13,98 +13,98 @@ public static class ReturnsAsyncExtensions /// /// Registers the for this method. /// - public static IReturnMethodSetup> ReturnsAsync(this IReturnMethodSetup> setup, + public static IReturnMethodSetupReturnBuilder> ReturnsAsync(this IReturnMethodSetup> setup, TReturn returnValue) => setup.Returns(Task.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup> ReturnsAsync(this IReturnMethodSetup> setup, + public static IReturnMethodSetupReturnBuilder> ReturnsAsync(this IReturnMethodSetup> setup, Func callback) => setup.Returns(() => Task.FromResult(callback())); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1> ReturnsAsync( this IReturnMethodSetup, T1> setup, TReturn returnValue) => setup.Returns(Task.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1> ReturnsAsync( this IReturnMethodSetup, T1> setup, Func callback) => setup.Returns(() => Task.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1> ReturnsAsync( this IReturnMethodSetup, T1> setup, Func callback) => setup.Returns(v1 => Task.FromResult(callback(v1))); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1, T2> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync( this IReturnMethodSetup, T1, T2> setup, TReturn returnValue) => setup.Returns(Task.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync( this IReturnMethodSetup, T1, T2> setup, Func callback) => setup.Returns(() => Task.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync( this IReturnMethodSetup, T1, T2> setup, Func callback) => setup.Returns((v1, v2) => Task.FromResult(callback(v1, v2))); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1, T2, T3> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) => setup.Returns(Task.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3> setup, Func callback) => setup.Returns(() => Task.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3> setup, Func callback) => setup.Returns((v1, v2, v3) => Task.FromResult(callback(v1, v2, v3))); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) => setup.Returns(Task.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3, T4> setup, Func callback) => setup.Returns(() => Task.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3, T4> setup, Func callback) => setup.Returns((v1, v2, v3, v4) => Task.FromResult(callback(v1, v2, v3, v4))); @@ -113,98 +113,98 @@ public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync /// Registers the for this method. /// - public static IReturnMethodSetup> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder> ReturnsAsync( this IReturnMethodSetup> setup, TReturn returnValue) => setup.Returns(ValueTask.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder> ReturnsAsync( this IReturnMethodSetup> setup, Func callback) => setup.Returns(() => ValueTask.FromResult(callback())); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1> ReturnsAsync( this IReturnMethodSetup, T1> setup, TReturn returnValue) => setup.Returns(ValueTask.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1> ReturnsAsync( this IReturnMethodSetup, T1> setup, Func callback) => setup.Returns(() => ValueTask.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1> ReturnsAsync( this IReturnMethodSetup, T1> setup, Func callback) => setup.Returns(v1 => ValueTask.FromResult(callback(v1))); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1, T2> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync( this IReturnMethodSetup, T1, T2> setup, TReturn returnValue) => setup.Returns(ValueTask.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync( this IReturnMethodSetup, T1, T2> setup, Func callback) => setup.Returns(() => ValueTask.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync( this IReturnMethodSetup, T1, T2> setup, Func callback) => setup.Returns((v1, v2) => ValueTask.FromResult(callback(v1, v2))); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1, T2, T3> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) => setup.Returns(ValueTask.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3> setup, Func callback) => setup.Returns(() => ValueTask.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3> setup, Func callback) => setup.Returns((v1, v2, v3) => ValueTask.FromResult(callback(v1, v2, v3))); /// /// Registers the for this method. /// - public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) => setup.Returns(ValueTask.FromResult(returnValue)); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3, T4> setup, Func callback) => setup.Returns(() => ValueTask.FromResult(callback())); /// /// Registers an to setup the return value for this method. /// - public static IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync( + public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync( this IReturnMethodSetup, T1, T2, T3, T4> setup, Func callback) => setup.Returns((v1, v2, v3, v4) => ValueTask.FromResult(callback(v1, v2, v3, v4))); #pragma warning restore CA2012 // Use ValueTasks correctly diff --git a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt index b8502f93..bee28702 100644 --- a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt +++ b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt @@ -163,34 +163,34 @@ namespace Mockolate } public static class ReturnsAsyncExtensions { - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } } public static class SetupExtensions { diff --git a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt index e814d85c..10ae9f4f 100644 --- a/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt +++ b/Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt @@ -162,34 +162,34 @@ namespace Mockolate } public static class ReturnsAsyncExtensions { - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } } public static class SetupExtensions { diff --git a/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt b/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt index 57585daa..a58afda1 100644 --- a/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt +++ b/Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt @@ -157,20 +157,20 @@ namespace Mockolate } public static class ReturnsAsyncExtensions { - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } - public static Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3> setup, TReturn returnValue) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, System.Func callback) { } + public static Mockolate.Setup.IReturnMethodSetupReturnBuilder, T1, T2, T3, T4> ReturnsAsync(this Mockolate.Setup.IReturnMethodSetup, T1, T2, T3, T4> setup, TReturn returnValue) { } } public static class SetupExtensions { diff --git a/Tests/Mockolate.SourceGenerators.Tests/Sources/ReturnsAsyncExtensionsTests.cs b/Tests/Mockolate.SourceGenerators.Tests/Sources/ReturnsAsyncExtensionsTests.cs index 35eb42b5..2454413f 100644 --- a/Tests/Mockolate.SourceGenerators.Tests/Sources/ReturnsAsyncExtensionsTests.cs +++ b/Tests/Mockolate.SourceGenerators.Tests/Sources/ReturnsAsyncExtensionsTests.cs @@ -63,22 +63,22 @@ public interface IMyInterface await That(result.Sources).ContainsKey("ReturnsAsyncExtensions.g.cs").WhoseValue .Contains( - "public static IReturnMethodSetup, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, TReturn returnValue)") + "public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, TReturn returnValue)") .And .Contains( - "public static IReturnMethodSetup, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)") + "public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)") .And .Contains( - "public static IReturnMethodSetup, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)") + "public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)") .And .Contains( - "public static IReturnMethodSetup, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, TReturn returnValue)") + "public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, TReturn returnValue)") .And .Contains( - "public static IReturnMethodSetup, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)") + "public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)") .And .Contains( - "public static IReturnMethodSetup, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)"); + "public static IReturnMethodSetupReturnBuilder, T1, T2, T3, T4, T5> ReturnsAsync(this IReturnMethodSetup, T1, T2, T3, T4, T5> setup, Func callback)"); } [Fact] diff --git a/Tests/Mockolate.Tests/ReturnsAsyncExtensionsTests.cs b/Tests/Mockolate.Tests/ReturnsAsyncExtensionsTests.cs index 992de68b..a03b0ec5 100644 --- a/Tests/Mockolate.Tests/ReturnsAsyncExtensionsTests.cs +++ b/Tests/Mockolate.Tests/ReturnsAsyncExtensionsTests.cs @@ -37,6 +37,21 @@ public async Task ReturnsAsync_1Parameter_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_1Parameter_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.Method1(It.IsAny()).ReturnsAsync(42).When(i => i > 0).Only(1); + + int result1 = await sut.Method1(1); + int result2 = await sut.Method1(1); + int result3 = await sut.Method1(1); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_2Parameters_Callback_ReturnsConfiguredValue() { @@ -70,6 +85,22 @@ public async Task ReturnsAsync_2Parameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_2Parameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.Method2(It.IsAny(), It.IsAny()).ReturnsAsync(42).When(i => i > 0) + .Only(1); + + int result1 = await sut.Method2(1, 2); + int result2 = await sut.Method2(1, 2); + int result3 = await sut.Method2(1, 2); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_3Parameters_Callback_ReturnsConfiguredValue() { @@ -104,6 +135,22 @@ public async Task ReturnsAsync_3Parameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_3Parameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.Method3(It.IsAny(), It.IsAny(), It.IsAny()).ReturnsAsync(() => 42) + .When(i => i > 0).Only(1); + + int result1 = await sut.Method3(1, 2, 3); + int result2 = await sut.Method3(1, 2, 3); + int result3 = await sut.Method3(1, 2, 3); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_4Parameters_Callback_ReturnsConfiguredValue() { @@ -140,6 +187,22 @@ public async Task ReturnsAsync_4Parameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_4Parameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.Method4(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()) + .ReturnsAsync(42).When(i => i > 0).Only(1); + + int result1 = await sut.Method4(1, 2, 3, 4); + int result2 = await sut.Method4(1, 2, 3, 4); + int result3 = await sut.Method4(1, 2, 3, 4); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_NoParameters_Callback_ReturnsConfiguredValue() { @@ -162,6 +225,21 @@ public async Task ReturnsAsync_NoParameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_NoParameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.Method0().ReturnsAsync(42).When(i => i > 0).Only(1); + + int result1 = await sut.Method0(); + int result2 = await sut.Method0(); + int result3 = await sut.Method0(); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_WithParameters_Callback_ReturnsConfiguredValue() { @@ -221,6 +299,21 @@ public async Task ReturnsAsync_1Parameter_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_1Parameter_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.MethodVT1(It.IsAny()).ReturnsAsync(42).When(i => i > 0).Only(1); + + int result1 = await sut.MethodVT1(1); + int result2 = await sut.MethodVT1(1); + int result3 = await sut.MethodVT1(1); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_2Parameters_Callback_ReturnsConfiguredValue() { @@ -254,6 +347,22 @@ public async Task ReturnsAsync_2Parameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_2Parameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.MethodVT2(It.IsAny(), It.IsAny()).ReturnsAsync(42).When(i => i > 0) + .Only(1); + + int result1 = await sut.MethodVT2(1, 2); + int result2 = await sut.MethodVT2(1, 2); + int result3 = await sut.MethodVT2(1, 2); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_3Parameters_Callback_ReturnsConfiguredValue() { @@ -288,6 +397,22 @@ public async Task ReturnsAsync_3Parameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_3Parameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.MethodVT3(It.IsAny(), It.IsAny(), It.IsAny()).ReturnsAsync(() => 42) + .When(i => i > 0).Only(1); + + int result1 = await sut.MethodVT3(1, 2, 3); + int result2 = await sut.MethodVT3(1, 2, 3); + int result3 = await sut.MethodVT3(1, 2, 3); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_4Parameters_Callback_ReturnsConfiguredValue() { @@ -324,6 +449,22 @@ public async Task ReturnsAsync_4Parameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_4Parameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.MethodVT4(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()) + .ReturnsAsync(42).When(i => i > 0).Only(1); + + int result1 = await sut.MethodVT4(1, 2, 3, 4); + int result2 = await sut.MethodVT4(1, 2, 3, 4); + int result3 = await sut.MethodVT4(1, 2, 3, 4); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_NoParameters_Callback_ReturnsConfiguredValue() { @@ -346,6 +487,21 @@ public async Task ReturnsAsync_NoParameters_ReturnsConfiguredValue() await That(result).IsEqualTo(42); } + [Fact] + public async Task ReturnsAsync_NoParameters_ShouldSupportWhenAndFor() + { + IReturnsAsyncExtensionsSetupTest sut = Mock.Create(); + sut.SetupMock.Method.MethodVT0().ReturnsAsync(42).When(i => i > 0).Only(1); + + int result1 = await sut.MethodVT0(); + int result2 = await sut.MethodVT0(); + int result3 = await sut.MethodVT0(); + + await That(result1).IsEqualTo(0); + await That(result2).IsEqualTo(42); + await That(result3).IsEqualTo(0); + } + [Fact] public async Task ReturnsAsync_WithParameters_Callback_ReturnsConfiguredValue() {