|
1 | 1 | namespace MyTested.AspNetCore.Mvc
|
2 | 2 | {
|
| 3 | + using System; |
3 | 4 | using System.IO;
|
4 | 5 | using System.Linq;
|
5 | 6 | using Builders.ActionResults.File;
|
@@ -119,18 +120,31 @@ public static IAndFileTestBuilder WithFileProvider(
|
119 | 120 | public static IAndFileTestBuilder WithFileProviderOfType<TFileProvider>(
|
120 | 121 | this IFileTestBuilder fileTestBuilder)
|
121 | 122 | where TFileProvider : IFileProvider
|
| 123 | + => WithFileProviderOfType(fileTestBuilder, typeof(TFileProvider)); |
| 124 | + |
| 125 | + /// <summary> |
| 126 | + /// Tests whether the <see cref="VirtualFileResult"/> |
| 127 | + /// has the same file provider type as the provided one. |
| 128 | + /// </summary> |
| 129 | + /// <param name="fileTestBuilder"> |
| 130 | + /// Instance of <see cref="IFileTestBuilder"/> type. |
| 131 | + /// </param> |
| 132 | + /// <param name="fileProviderType"></param> |
| 133 | + /// <returns>The same <see cref="IAndFileTestBuilder"/>.</returns> |
| 134 | + public static IAndFileTestBuilder WithFileProviderOfType( |
| 135 | + this IFileTestBuilder fileTestBuilder,Type fileProviderType) |
122 | 136 | {
|
123 | 137 | var actualBuilder = GetFileTestBuilder<VirtualFileResult>(fileTestBuilder, FileProvider);
|
124 | 138 |
|
125 | 139 | var virtualFileResult = actualBuilder.ActionResult;
|
126 | 140 | var actualFileProvider = virtualFileResult.FileProvider;
|
127 | 141 |
|
128 | 142 | if (actualFileProvider == null ||
|
129 |
| - Reflection.AreDifferentTypes(typeof(TFileProvider), actualFileProvider.GetType())) |
| 143 | + Reflection.AreDifferentTypes(fileProviderType, actualFileProvider.GetType())) |
130 | 144 | {
|
131 | 145 | actualBuilder.ThrowNewFailedValidationException(
|
132 | 146 | FileProvider,
|
133 |
| - $"to be of {typeof(TFileProvider).Name} type", |
| 147 | + $"to be of {fileProviderType.Name} type", |
134 | 148 | $"instead received {actualFileProvider.GetName()}");
|
135 | 149 | }
|
136 | 150 |
|
|
0 commit comments