@@ -38,7 +38,7 @@ public async Task GeneratePolicyFragmentTemplates_ProperlyParsesResponse()
38
38
var extractorParameters = new ExtractorParameters ( extractorConfig ) ;
39
39
var fileLocation = Path . Combine ( MockClientUtils . ApiClientJsonResponsesPath , "ApiManagementListPolicyFragments_success_response.json" ) ;
40
40
var mockedClient = await MockPolicyFragmentClient . GetMockedHttpPolicyFragmentClient ( fileLocation ) ;
41
- var policyFragmentExtractor = new PolicyFragmentsExtractor ( this . GetTestLogger < PolicyFragmentsExtractor > ( ) , new TemplateBuilder ( ) , mockedClient ) ;
41
+ var policyFragmentExtractor = new PolicyFragmentsExtractor ( this . GetTestLogger < PolicyFragmentsExtractor > ( ) , new TemplateBuilder ( ) , mockedClient , null ) ;
42
42
43
43
var extractorExecutor = ExtractorExecutor . BuildExtractorExecutor (
44
44
this . GetTestLogger < ExtractorExecutor > ( ) ,
@@ -75,11 +75,14 @@ public async Task GeneratePolicyFragmentTemplates_GeneratesPolicyFragmentTemplat
75
75
var extractorParameters = new ExtractorParameters ( extractorConfig ) ;
76
76
var fileLocation = Path . Combine ( MockClientUtils . ApiClientJsonResponsesPath , "ApiManagementListPolicyFragments_success_response.json" ) ;
77
77
var mockedClient = await MockPolicyFragmentClient . GetMockedHttpPolicyFragmentClient ( fileLocation ) ;
78
- var policyFragmentExtractor = new PolicyFragmentsExtractor ( this . GetTestLogger < PolicyFragmentsExtractor > ( ) , new TemplateBuilder ( ) , mockedClient ) ;
78
+
79
+ var policExtractor = new PolicyExtractor ( this . GetTestLogger < PolicyExtractor > ( ) , null , new TemplateBuilder ( ) ) ;
80
+ var policyFragmentExtractor = new PolicyFragmentsExtractor ( this . GetTestLogger < PolicyFragmentsExtractor > ( ) , new TemplateBuilder ( ) , mockedClient , policExtractor ) ;
79
81
80
82
var extractorExecutor = ExtractorExecutor . BuildExtractorExecutor (
81
83
this . GetTestLogger < ExtractorExecutor > ( ) ,
82
- policyFragmentsExtractor : policyFragmentExtractor ) ;
84
+ policyFragmentsExtractor : policyFragmentExtractor ,
85
+ policyExtractor : policExtractor ) ;
83
86
extractorExecutor . SetExtractorParameters ( extractorParameters ) ;
84
87
85
88
var apiPolicies = new List < PolicyTemplateResource > ( )
@@ -105,5 +108,46 @@ public async Task GeneratePolicyFragmentTemplates_GeneratesPolicyFragmentTemplat
105
108
policyFragment1 . Should ( ) . NotBeNull ( ) ;
106
109
policyFragment1 . Properties . Description . Should ( ) . Be ( "A policy fragment example 1" ) ;
107
110
}
111
+
112
+ [ Fact ]
113
+ public async Task GeneratePolicyFragmentTemplates_GeneratesPolicyFragmentTemplateForSingleApi_GivenPolicyXmlBaseUrlParameter ( )
114
+ {
115
+ // arrange
116
+ var currentTestDirectory = Path . Combine ( this . OutputDirectory , nameof ( GeneratePolicyFragmentTemplates_GeneratesPolicyFragmentTemplateForSingleApi_GivenPolicyXmlBaseUrlParameter ) ) ;
117
+
118
+ var extractorConfig = this . GetDefaultExtractorConsoleAppConfiguration (
119
+ policyXmlBaseUrl : "policyXmlBaseUrl" ,
120
+ apiName : "api" ) ;
121
+ var extractorParameters = new ExtractorParameters ( extractorConfig ) ;
122
+
123
+ var policyFragmentResponseFileLocation = Path . Combine ( MockClientUtils . ApiClientJsonResponsesPath , "ApiManagementListPolicyFragments_success_response.json" ) ;
124
+ var mockedPolicyFragmentClient = await MockPolicyFragmentClient . GetMockedHttpPolicyFragmentClient ( policyFragmentResponseFileLocation ) ;
125
+
126
+ var policyResponseFileLocation = Path . Combine ( MockClientUtils . ApiClientJsonResponsesPath , "ApiManagementListApiPolicies_success_response.json" ) ;
127
+ var mockedPolicyClient = await MockPolicyClient . GetMockedHttpPolicyFragmentClient ( policyResponseFileLocation ) ;
128
+
129
+ var policExtractor = new PolicyExtractor ( this . GetTestLogger < PolicyExtractor > ( ) , mockedPolicyClient , new TemplateBuilder ( ) ) ;
130
+ var policyFragmentExtractor = new PolicyFragmentsExtractor ( this . GetTestLogger < PolicyFragmentsExtractor > ( ) , new TemplateBuilder ( ) , mockedPolicyFragmentClient , policExtractor ) ;
131
+
132
+ var extractorExecutor = ExtractorExecutor . BuildExtractorExecutor (
133
+ this . GetTestLogger < ExtractorExecutor > ( ) ,
134
+ policyFragmentsExtractor : policyFragmentExtractor ,
135
+ policyExtractor : policExtractor ) ;
136
+ extractorExecutor . SetExtractorParameters ( extractorParameters ) ;
137
+
138
+ // act
139
+ var apiPolicies = await policExtractor . GenerateApiPolicyResourceAsync ( "api" , currentTestDirectory , extractorParameters ) ;
140
+ var policyFragments = await extractorExecutor . GeneratePolicyFragmentsTemplateAsync ( new List < PolicyTemplateResource > { apiPolicies } , currentTestDirectory ) ;
141
+
142
+ // assert
143
+ File . Exists ( Path . Combine ( currentTestDirectory , extractorParameters . FileNames . PolicyFragments ) ) . Should ( ) . BeTrue ( ) ;
144
+
145
+ policyFragments . Parameters . Should ( ) . ContainKey ( ParameterNames . ApimServiceName ) ;
146
+ policyFragments . TypedResources . PolicyFragments . Count ( ) . Should ( ) . Be ( 1 ) ;
147
+
148
+ var policyFragment1 = policyFragments . TypedResources . PolicyFragments . First ( x => x . OriginalName . Equals ( "policyFragment1" ) ) ;
149
+ policyFragment1 . Should ( ) . NotBeNull ( ) ;
150
+ policyFragment1 . Properties . Description . Should ( ) . Be ( "A policy fragment example 1" ) ;
151
+ }
108
152
}
109
153
}
0 commit comments