|
11 | 11 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Commands.Executors;
|
12 | 12 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants;
|
13 | 13 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.FileHandlers;
|
| 14 | +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiOperations; |
14 | 15 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Builders;
|
15 | 16 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.EntityExtractors;
|
| 17 | +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.EntityExtractors.Abstractions; |
16 | 18 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models;
|
17 | 19 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Tests.Extractor.Abstractions;
|
18 | 20 | using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Tests.Moqs.ApiClients;
|
@@ -298,5 +300,65 @@ public async Task GenerateApiTemplateAsync_WebsocketApiTypeOperationsNotGenerate
|
298 | 300 | apiTemplate.TypedResources.ApiOperationsTags.Count().Should().Be(6);
|
299 | 301 | apiTemplate.TypedResources.ApiOperationsPolicies.Count().Should().Be(3);
|
300 | 302 | }
|
| 303 | + |
| 304 | + [Fact] |
| 305 | + public async Task GenerateApiTemplateAsync_ContainsContactAndTermOfService_Information() |
| 306 | + { |
| 307 | + // arrange |
| 308 | + var currentTestDirectory = Path.Combine(this.OutputDirectory, nameof(GenerateApiTemplateAsync_ContainsContactAndTermOfService_Information)); |
| 309 | + |
| 310 | + var extractorConfig = this.GetDefaultExtractorConsoleAppConfiguration( |
| 311 | + multipleAPIs: string.Empty, |
| 312 | + apiVersionSetName: string.Empty, |
| 313 | + apiName: "apiName" |
| 314 | + ); |
| 315 | + |
| 316 | + var extractorParameters = new ExtractorParameters(extractorConfig); |
| 317 | + |
| 318 | + // mocked clients |
| 319 | + var responseFileLocation = Path.Combine(MockClientUtils.ApiClientJsonResponsesPath, "ApiManagementGetApiContract_success_response.json"); |
| 320 | + var mockedApiClientAllCurrent = await MockApisClient.GetMockedHttpApiClient(new MockClientConfiguration(responseFileLocation: responseFileLocation)); |
| 321 | + |
| 322 | + // mocked extractors |
| 323 | + var mockedDiagnosticExtractor = new Mock<IDiagnosticExtractor>(MockBehavior.Loose); |
| 324 | + var mockedApiSchemaExtractor = new Mock<IApiSchemaExtractor>(MockBehavior.Loose); |
| 325 | + var mockedPolicyExtractor = new Mock<IPolicyExtractor>(MockBehavior.Loose); |
| 326 | + var mockedProductApisExtractor = new Mock<IProductApisExtractor>(MockBehavior.Loose); |
| 327 | + var mockedTagExtractor = new Mock<ITagExtractor>(MockBehavior.Loose); |
| 328 | + var mockedApiOperationExtractor = new Mock<IApiOperationExtractor>(MockBehavior.Loose); |
| 329 | + mockedApiOperationExtractor.Setup( |
| 330 | + x => x.GenerateApiOperationsResourcesAsync(It.IsAny<string>(), It.IsAny<ExtractorParameters>()) |
| 331 | + ).ReturnsAsync(new List<ApiOperationTemplateResource>()); |
| 332 | + |
| 333 | + |
| 334 | + var apiExtractor = new ApiExtractor( |
| 335 | + this.GetTestLogger<ApiExtractor>(), |
| 336 | + new TemplateBuilder(), |
| 337 | + mockedApiClientAllCurrent, |
| 338 | + mockedDiagnosticExtractor.Object, |
| 339 | + mockedApiSchemaExtractor.Object, |
| 340 | + mockedPolicyExtractor.Object, |
| 341 | + mockedProductApisExtractor.Object, |
| 342 | + mockedTagExtractor.Object, |
| 343 | + mockedApiOperationExtractor.Object, |
| 344 | + null |
| 345 | + ); |
| 346 | + |
| 347 | + // act |
| 348 | + var apiTemplate = await apiExtractor.GenerateSingleApiTemplateResourcesAsync( |
| 349 | + singleApiName: "api-contract-and-terms", |
| 350 | + currentTestDirectory, |
| 351 | + extractorParameters); |
| 352 | + |
| 353 | + // assert |
| 354 | + apiTemplate.Apis.Should().NotBeNull(); |
| 355 | + apiTemplate.Apis.Count.Should().Be(1); |
| 356 | + apiTemplate.Apis[0].Name.Contains("api-contract-and-terms").Should().BeTrue(); |
| 357 | + apiTemplate.Apis[0].Properties.Contact.Should().NotBeNull(); |
| 358 | + apiTemplate.Apis[0].Properties.Contact.Name.Should().Be("name-value"); |
| 359 | + apiTemplate.Apis[0].Properties.Contact.Email.Should().Be("email-value"); |
| 360 | + apiTemplate.Apis[0].Properties.Contact.Url.Should().Be("url-value"); |
| 361 | + apiTemplate.Apis[0].Properties.TermsOfServiceUrl.Should().Be("test-url-value"); |
| 362 | + } |
301 | 363 | }
|
302 | 364 | }
|
0 commit comments