Skip to content
This repository was archived by the owner on Feb 23, 2024. It is now read-only.

Commit 307eeac

Browse files
authored
Merge branch 'master' into 228-extractor-non-related-product-extracted-fix
2 parents 62552f8 + e06c758 commit 307eeac

File tree

5 files changed

+40
-7
lines changed

5 files changed

+40
-7
lines changed

src/APIM_ARMTemplate/apimtemplate.test/Creator/TemplateCreatorTests/ProductTemplateCreatorTests.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,38 @@ public void ShouldCreateProductFromCreatorConfig()
3939
Assert.Equal(product.approvalRequired, productsTemplateResource.properties.approvalRequired);
4040
Assert.Equal(product.state, productsTemplateResource.properties.state);
4141
}
42+
43+
[Fact]
44+
public void ShouldNotCreateApprovalRequiredOrSubscriptionsLimitIfSubscriptionRequiredIsFalse()
45+
{
46+
// arrange
47+
ProductTemplateCreator productTemplateCreator = ProductTemplateCreatorFactory.GenerateProductTemplateCreator();
48+
CreatorConfig creatorConfig = new CreatorConfig() { products = new List<ProductConfig>() };
49+
ProductConfig product = new ProductConfig()
50+
{
51+
displayName = "displayName",
52+
description = "description",
53+
terms = "terms",
54+
subscriptionRequired = false,
55+
approvalRequired = true,
56+
subscriptionsLimit = 1,
57+
state = "state"
58+
};
59+
creatorConfig.products.Add(product);
60+
61+
// act
62+
Template productTemplate = productTemplateCreator.CreateProductTemplate(creatorConfig);
63+
ProductsTemplateResource productsTemplateResource = (ProductsTemplateResource)productTemplate.resources[0];
64+
65+
// assert
66+
Assert.Equal($"[concat(parameters('ApimServiceName'), '/{product.displayName}')]", productsTemplateResource.name);
67+
Assert.Equal(product.displayName, productsTemplateResource.properties.displayName);
68+
Assert.Equal(product.description, productsTemplateResource.properties.description);
69+
Assert.Equal(product.terms, productsTemplateResource.properties.terms);
70+
Assert.Equal(product.subscriptionRequired, productsTemplateResource.properties.subscriptionRequired);
71+
Assert.Null(productsTemplateResource.properties.subscriptionsLimit);
72+
Assert.Null(productsTemplateResource.properties.approvalRequired);
73+
Assert.Equal(product.state, productsTemplateResource.properties.state);
74+
}
4275
}
4376
}

src/APIM_ARMTemplate/apimtemplate/Common/TemplateModels/ProductsTemplateResource.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ public class ProductsTemplateProperties
1111
public string description { get; set; }
1212
public string terms { get; set; }
1313
public bool subscriptionRequired { get; set; }
14-
public bool approvalRequired { get; set; }
15-
public int subscriptionsLimit { get; set; }
14+
public bool? approvalRequired { get; set; }
15+
public int? subscriptionsLimit { get; set; }
1616
public string state { get; set; }
1717
public string displayName { get; set; }
1818
}

src/APIM_ARMTemplate/apimtemplate/Creator/TemplateCreators/ProductTemplateCreator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public Template CreateProductTemplate(CreatorConfig creatorConfig)
3737
description = product.description,
3838
terms = product.terms,
3939
subscriptionRequired = product.subscriptionRequired,
40-
approvalRequired = product.approvalRequired,
41-
subscriptionsLimit = product.subscriptionsLimit,
40+
approvalRequired = product.subscriptionRequired ? product.approvalRequired : null,
41+
subscriptionsLimit = product.subscriptionRequired ? product.subscriptionsLimit : null,
4242
state = product.state,
4343
displayName = product.displayName
4444
},

src/APIM_ARMTemplate/apimtemplate/Extractor/EntityExtractors/APIExtractor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public async Task<string> GetOperationPolicyAsync(string ApiManagementName, stri
4141
{
4242
(string azToken, string azSubId) = await auth.GetAccessToken();
4343

44-
string requestUrl = string.Format("{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/operations/{5}/policies/policy?api-version={6}",
44+
string requestUrl = string.Format("{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/operations/{5}/policies/policy?api-version={6}&format=rawxml",
4545
baseUrl, azSubId, ResourceGroupName, ApiManagementName, ApiName, OperationId, GlobalConstants.APIVersion);
4646

4747
return await CallApiManagementAsync(azToken, requestUrl);
@@ -71,7 +71,7 @@ public async Task<string> GetAPIPolicyAsync(string ApiManagementName, string Res
7171
{
7272
(string azToken, string azSubId) = await auth.GetAccessToken();
7373

74-
string requestUrl = string.Format("{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/policies/policy?api-version={5}",
74+
string requestUrl = string.Format("{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/policies/policy?api-version={5}&format=rawxml",
7575
baseUrl, azSubId, ResourceGroupName, ApiManagementName, ApiName, GlobalConstants.APIVersion);
7676

7777
return await CallApiManagementAsync(azToken, requestUrl);

src/APIM_ARMTemplate/apimtemplate/Extractor/EntityExtractors/ProductExtractor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public async Task<string> GetProductPolicyAsync(string ApiManagementName, string
4141
{
4242
(string azToken, string azSubId) = await auth.GetAccessToken();
4343

44-
string requestUrl = string.Format("{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/products/{4}/policies/policy?api-version={5}",
44+
string requestUrl = string.Format("{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/products/{4}/policies/policy?api-version={5}&format=rawxml",
4545
baseUrl, azSubId, ResourceGroupName, ApiManagementName, ProductName, GlobalConstants.APIVersion);
4646

4747
return await CallApiManagementAsync(azToken, requestUrl);

0 commit comments

Comments
 (0)