File tree Expand file tree Collapse file tree 3 files changed +51
-23
lines changed
src/QAToolKit.Source.Swagger Expand file tree Collapse file tree 3 files changed +51
-23
lines changed Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments