Skip to content

Commit 60bba26

Browse files
committed
filterin fix for swagger File source
1 parent d5a019e commit 60bba26

File tree

3 files changed

+51
-23
lines changed

3 files changed

+51
-23
lines changed

src/QAToolKit.Source.Swagger/SwaggerFileSource.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,16 @@ public async Task<IList<HttpTestRequest>> Load(IList<FileInfo> source)
4949
var textWritter = new OpenApiJsonWriter(new StringWriter());
5050
openApiDocument.SerializeAsV3(textWritter);
5151

52-
restRequests.AddRange(processor.MapFromOpenApiDocument(_swaggerOptions.BaseUrl, openApiDocument, _swaggerOptions.ReplacementValues));
52+
var requests = processor.MapFromOpenApiDocument(_swaggerOptions.BaseUrl, openApiDocument, _swaggerOptions.ReplacementValues);
53+
54+
if (_swaggerOptions.UseRequestFilter)
55+
{
56+
restRequests.AddRange(SwaggerRequestFilter.FilterRequests(requests, _swaggerOptions.RequestFilter));
57+
}
58+
else
59+
{
60+
restRequests.AddRange(requests);
61+
}
5362
}
5463
}
5564

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using QAToolKit.Core.Models;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
5+
namespace QAToolKit.Source.Swagger
6+
{
7+
/// <summary>
8+
/// Swagger request filtering
9+
/// </summary>
10+
public static class SwaggerRequestFilter
11+
{
12+
/// <summary>
13+
/// Filter out the requests by the specified filters
14+
/// </summary>
15+
/// <param name="requests"></param>
16+
/// <param name="requestFilter"></param>
17+
/// <returns></returns>
18+
public static IList<HttpTestRequest> FilterRequests(IList<HttpTestRequest> requests, RequestFilter requestFilter)
19+
{
20+
var requestsLocal = new List<HttpTestRequest>();
21+
22+
if (requestFilter.AuthenticationTypes != null)
23+
{
24+
requestsLocal.AddRange(requests.Where(request => requestFilter.AuthenticationTypes.ToList().Any(x => x == request.AuthenticationTypes)));
25+
}
26+
27+
if (requestFilter.TestTypes != null)
28+
{
29+
requestsLocal.AddRange(requests.Where(request => requestFilter.TestTypes.ToList().Any(x => x == request.TestTypes)));
30+
}
31+
32+
if (requestFilter.EndpointNameWhitelist != null)
33+
{
34+
requestsLocal.AddRange(requests.Where(request => requestFilter.EndpointNameWhitelist.Any(x => x == request.OperationId)));
35+
}
36+
37+
return requestsLocal.ToList();
38+
}
39+
}
40+
}

src/QAToolKit.Source.Swagger/SwaggerUrlSource.cs

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ public async Task<IList<HttpTestRequest>> Load(Uri[] source)
4646
{
4747
using (var httpClient = new HttpClient())
4848
{
49-
5049
if (_swaggerOptions.UseBasicAuth)
5150
{
5251
var authenticationString = $"{_swaggerOptions.UserName}:{_swaggerOptions.Password}";
@@ -64,7 +63,7 @@ public async Task<IList<HttpTestRequest>> Load(Uri[] source)
6463

6564
if (_swaggerOptions.UseRequestFilter)
6665
{
67-
restRequests.AddRange(FilterRequests(requests, _swaggerOptions.RequestFilter));
66+
restRequests.AddRange(SwaggerRequestFilter.FilterRequests(requests, _swaggerOptions.RequestFilter));
6867
}
6968
else
7069
{
@@ -76,26 +75,6 @@ public async Task<IList<HttpTestRequest>> Load(Uri[] source)
7675
return restRequests;
7776
}
7877

79-
private IList<HttpTestRequest> FilterRequests(IList<HttpTestRequest> requests, RequestFilter requestFilter)
80-
{
81-
var requestsLocal = new List<HttpTestRequest>();
82-
83-
if (requestFilter.AuthenticationTypes != null)
84-
{
85-
requestsLocal.AddRange(requests.Where(request => requestFilter.AuthenticationTypes.ToList().Any(x => x == request.AuthenticationTypes)));
86-
}
87-
88-
if (requestFilter.TestTypes != null)
89-
{
90-
requestsLocal.AddRange(requests.Where(request => requestFilter.TestTypes.ToList().Any(x => x == request.TestTypes)));
91-
}
92-
93-
if (requestFilter.EndpointNameWhitelist != null)
94-
{
95-
requestsLocal.AddRange(requests.Where(request => requestFilter.EndpointNameWhitelist.Any(x => x == request.OperationId)));
96-
}
9778

98-
return requestsLocal.ToList();
99-
}
10079
}
10180
}

0 commit comments

Comments
 (0)