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

Commit 0dd018b

Browse files
authored
Merge pull request #197 from Roamler/master
Make approvalRequired and subscriptionsLimit nullable
2 parents c41ab9d + 0e88e32 commit 0dd018b

File tree

3 files changed

+37
-4
lines changed

3 files changed

+37
-4
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
},

0 commit comments

Comments
 (0)