66 using Builders . Contracts . Models ;
77 using Builders . And ;
88 using Builders . Base ;
9+ using Builders . Contracts . Results ;
910 using Builders . Models ;
11+ using Builders . Results ;
1012 using Exceptions ;
1113 using Internal . TestContexts ;
1214 using Microsoft . AspNetCore . Mvc ;
@@ -40,7 +42,7 @@ public static IAndTestBuilder ResultOfType<TResult>(
4042 public static IAndTestBuilder ResultOfType < TResult > (
4143 this IBaseShouldReturnTestBuilder < TResult > builder ,
4244 Type resultType ,
43- Action < IModelDetailsTestBuilder < TResult > > resultTestBuilder )
45+ Action < IResultDetailsTestBuilder < TResult > > resultTestBuilder )
4446 {
4547 var actualBuilder = ( BaseTestBuilderWithActionContext ) builder ;
4648
@@ -50,7 +52,7 @@ public static IAndTestBuilder ResultOfType<TResult>(
5052 canBeAssignable : true ,
5153 allowDifferentGenericTypeDefinitions : true ) ;
5254
53- resultTestBuilder ? . Invoke ( new ModelDetailsTestBuilder < TResult > ( actualBuilder . TestContext ) ) ;
55+ resultTestBuilder ? . Invoke ( new ResultDetailsTestBuilder < TResult > ( actualBuilder . TestContext ) ) ;
5456
5557 return new AndTestBuilder ( actualBuilder . TestContext ) ;
5658 }
@@ -74,39 +76,50 @@ public static IAndTestBuilder ResultOfType<TResult>(
7476 /// <returns>Test builder of <see cref="IAndTestBuilder"/> type.</returns>
7577 public static IAndTestBuilder ResultOfType < TResult > (
7678 this IBaseShouldReturnTestBuilder builder ,
77- Action < IModelDetailsTestBuilder < TResult > > resultTestBuilder )
79+ Action < IResultDetailsTestBuilder < TResult > > resultTestBuilder )
7880 {
7981 var actualBuilder = ( BaseTestBuilderWithActionContext ) builder ;
8082
8183 InvocationResultValidator . ValidateInvocationResultType < TResult > (
8284 actualBuilder . TestContext ,
8385 canBeAssignable : true ) ;
8486
85- resultTestBuilder ? . Invoke ( new ModelDetailsTestBuilder < TResult > ( actualBuilder . TestContext ) ) ;
87+ resultTestBuilder ? . Invoke ( new ResultDetailsTestBuilder < TResult > ( actualBuilder . TestContext ) ) ;
8688
8789 return new AndTestBuilder ( actualBuilder . TestContext ) ;
8890 }
8991
9092 /// <summary>
91- /// Tests whether the result is deeply equal to the provided one .
93+ /// Tests the result by using a test builder .
9294 /// </summary>
93- /// <typeparam name="TResult">Expected result type.</typeparam>
9495 /// <param name="builder">Instance of <see cref="IBaseShouldReturnTestBuilder"/> type.</param>
95- /// <param name="model">Expected result object .</param>
96+ /// <param name="resultTestBuilder">Builder for testing the result .</param>
9697 /// <returns>Test builder of <see cref="IAndTestBuilder"/> type.</returns>
97- public static IAndTestBuilder Result < TResult > (
98+ public static IAndTestBuilder Result (
9899 this IBaseShouldReturnTestBuilder builder ,
99- TResult model )
100+ Action < IResultDetailsTestBuilder > resultTestBuilder )
100101 {
101102 var actualBuilder = ( BaseTestBuilderWithActionContext ) builder ;
102103
103- InvocationResultValidator . ValidateInvocationResult (
104- actualBuilder . TestContext ,
105- model ) ;
104+ resultTestBuilder ? . Invoke ( new ResultDetailsTestBuilder ( actualBuilder . TestContext ) ) ;
106105
107106 return new AndTestBuilder ( actualBuilder . TestContext ) ;
108107 }
109108
109+ /// <summary>
110+ /// Tests whether the result is deeply equal to the provided one.
111+ /// </summary>
112+ /// <typeparam name="TResult">Expected result type.</typeparam>
113+ /// <param name="builder">Instance of <see cref="IBaseShouldReturnTestBuilder"/> type.</param>
114+ /// <param name="result">Expected result object.</param>
115+ /// <returns>Test builder of <see cref="IAndTestBuilder"/> type.</returns>
116+ public static IAndTestBuilder Result < TResult > (
117+ this IBaseShouldReturnTestBuilder builder ,
118+ TResult result )
119+ => builder
120+ . Result ( value => value
121+ . EqualTo ( result ) ) ;
122+
110123 private static ActionTestContext ConvertMethodResult ( ActionTestContext testContext )
111124 {
112125 var methodResult = testContext . MethodResult ;
0 commit comments