|
1 | 1 | namespace MyTested.AspNetCore.Mvc
|
2 | 2 | {
|
| 3 | + using System; |
3 | 4 | using Builders.Base;
|
4 | 5 | using Builders.Contracts.ActionResults.Base;
|
5 | 6 | using Builders.Contracts.Base;
|
@@ -108,19 +109,34 @@ public static TViewResultTestBuilder WithViewEngine<TViewResultTestBuilder>(
|
108 | 109 | /// <returns>The same <see cref="Microsoft.AspNetCore.Mvc.ActionResult"/> test builder.</returns>
|
109 | 110 | public static TViewResultTestBuilder WithViewEngineOfType<TViewResultTestBuilder, TViewEngine>(
|
110 | 111 | this IBaseTestBuilderWithViewResult<TViewResultTestBuilder> baseTestBuilderWithViewResult)
|
111 |
| - where TViewEngine : IViewEngine |
| 112 | + where TViewEngine : IViewEngine |
| 113 | + where TViewResultTestBuilder : IBaseTestBuilderWithActionResult |
| 114 | + => WithViewEngineOfType<TViewResultTestBuilder>(baseTestBuilderWithViewResult, typeof(TViewEngine)); |
| 115 | + |
| 116 | + /// <summary> |
| 117 | + /// Tests whether the <see cref="Microsoft.AspNetCore.Mvc.ViewResult"/> or |
| 118 | + /// the <see cref="Microsoft.AspNetCore.Mvc.PartialViewResult"/> |
| 119 | + /// has the same <see cref="IViewEngine"/> type as the provided one. |
| 120 | + /// </summary> |
| 121 | + /// <param name="baseTestBuilderWithViewResult"> |
| 122 | + /// Instance of <see cref="IBaseTestBuilderWithViewResult{TViewResultTestBuilder}"/> type. |
| 123 | + /// </param> |
| 124 | + /// <param name="viewEngineType"></param> |
| 125 | + /// <returns>The same <see cref="Microsoft.AspNetCore.Mvc.ActionResult"/> test builder.</returns> |
| 126 | + public static TViewResultTestBuilder WithViewEngineOfType<TViewResultTestBuilder>( |
| 127 | + this IBaseTestBuilderWithViewResult<TViewResultTestBuilder> baseTestBuilderWithViewResult,Type viewEngineType) |
112 | 128 | where TViewResultTestBuilder : IBaseTestBuilderWithActionResult
|
113 | 129 | {
|
114 | 130 | var actualBuilder = GetActualBuilder(baseTestBuilderWithViewResult);
|
115 | 131 |
|
116 | 132 | var actualViewEngine = GetViewEngine(baseTestBuilderWithViewResult);
|
117 | 133 |
|
118 | 134 | if (actualViewEngine == null
|
119 |
| - || Reflection.AreDifferentTypes(typeof(TViewEngine), actualViewEngine.GetType())) |
| 135 | + || Reflection.AreDifferentTypes(viewEngineType, actualViewEngine.GetType())) |
120 | 136 | {
|
121 | 137 | actualBuilder.ThrowNewFailedValidationException(
|
122 | 138 | "engine",
|
123 |
| - $"to be of {typeof(TViewEngine).Name} type", |
| 139 | + $"to be of {viewEngineType.Name} type", |
124 | 140 | $"instead received {actualViewEngine.GetName()}");
|
125 | 141 | }
|
126 | 142 |
|
|
0 commit comments