Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix sdk breaking change with firewall policy rule collection group re… #12381

Merged
merged 1 commit into from
Jun 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ partial void CustomInitialize()
{
// first remove the converters added by generated code for the FirewallPolicyRule and RuleCondition
DeserializationSettings.Converters.Remove(DeserializationSettings.Converters.FirstOrDefault(c => c.GetType() == typeof(PolymorphicDeserializeJsonConverter<FirewallPolicyRule>)));
DeserializationSettings.Converters.Remove(DeserializationSettings.Converters.FirstOrDefault(c => c.GetType() == typeof(PolymorphicDeserializeJsonConverter<FirewallPolicyRuleCondition>)));
DeserializationSettings.Converters.Remove(DeserializationSettings.Converters.FirstOrDefault(c => c.GetType() == typeof(PolymorphicDeserializeJsonConverter<FirewallPolicyRuleCollection>)));
SerializationSettings.Converters.Remove(SerializationSettings.Converters.FirstOrDefault(c => c.GetType() == typeof(PolymorphicSerializeJsonConverter<FirewallPolicyRule>)));
SerializationSettings.Converters.Remove(SerializationSettings.Converters.FirstOrDefault(c => c.GetType() == typeof(PolymorphicSerializeJsonConverter<FirewallPolicyRuleCondition>)));
SerializationSettings.Converters.Remove(SerializationSettings.Converters.FirstOrDefault(c => c.GetType() == typeof(PolymorphicSerializeJsonConverter<FirewallPolicyRuleCollection>)));

// now add the correct converters
DeserializationSettings.Converters.Add(new PolymorphicJsonCustomConverter<FirewallPolicyRule, FirewallPolicyRuleCondition>("ruleType", "ruleConditionType"));
SerializationSettings.Converters.Add(new PolymorphicJsonCustomConverter<FirewallPolicyRule, FirewallPolicyRuleCondition>("ruleType", "ruleConditionType"));
DeserializationSettings.Converters.Add(new PolymorphicJsonCustomConverter<FirewallPolicyRuleCollection, FirewallPolicyRule>("ruleCollectionType", "ruleType"));
SerializationSettings.Converters.Add(new PolymorphicJsonCustomConverter<FirewallPolicyRuleCollection, FirewallPolicyRule>("ruleCollectionType", "ruleType"));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"location": "westus",
"properties": {
"priority": 110,
"name": "SampleRuleCollectionGroup",
"provisioningState": "Succeeded",
"ruleCollections": [
{
"ruleCollectionType": "FirewallPolicyNatRuleCollection",
"name": "Example-Nat-Rule",
"priority": 230,
"Action": {
"type": "Dnat"
},
"rules": [
{
"ruleType": "NatRule",
"name": "nat-rule11",
"description": "Rule to test nested polymorphism in Firewall Policy Rule Group Resource",
"sourceAddresses": [
"10.1.25.0/24"
],
"destinationAddresses": [
"13.22.11.44"
],
"ipProtocols": [
"TCP"
],
"TranslatedPort": "55001",
"TranslatedAddress": "10.1.22.12",
"destinationPorts": [
"55001"
]
}
]
}
]
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ namespace Networks.Tests
using System.IO;
using Newtonsoft.Json.Linq;

internal static class FirewallPolicyRuleGroupTestResource
internal static class FirewallPolicyRuleCollectionGroupTestResource
{
internal static JObject GetSampleResource()
{
var sampleResourceJson = File.ReadAllText("TestData/FirewallPolicyRuleGroupSampleResource.json");
var sampleResourceJson = File.ReadAllText("TestData/FirewallPolicyRuleCollectionGroupSampleResource.json");
var json = sampleResourceJson.Replace("'", "\"");
var resource = JObject.Parse(json).ToObject<JObject>();

Expand Down
12 changes: 6 additions & 6 deletions sdk/network/Microsoft.Azure.Management.Network/tests/Tests/FirewallPolicyTests.cs
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ namespace Networks.Tests
public class FirewallPolicyTests
{
[Fact()]
public void FirewallPolicyRuleGroupDeserializationTest()
public void FirewallPolicyRuleCollectionGroupDeserializationTest()
{
ServiceClientCredentials creds = new MockServiceClientCredentials();
var networkManagementClient = new NetworkManagementClient(new Uri("https://management.azure.com"), creds);
var responseContent = FirewallPolicyRuleGroupTestResource.GetSampleResource().ToString();
var ruleGroup = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject<FirewallPolicyRuleGroup>(responseContent, networkManagementClient.DeserializationSettings);
var responseContent = FirewallPolicyRuleCollectionGroupTestResource.GetSampleResource().ToString();
var ruleGroup = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject<FirewallPolicyRuleCollectionGroup>(responseContent, networkManagementClient.DeserializationSettings);

Assert.True(ruleGroup != null);
Assert.Equal(1, ruleGroup.Rules.Count);
Assert.Equal(1, ruleGroup.RuleCollections.Count);

FirewallPolicyNatRule policyRule = ruleGroup.Rules[0] as FirewallPolicyNatRule;
Assert.Equal(typeof(NetworkRuleCondition), policyRule.RuleCondition.GetType());
FirewallPolicyNatRuleCollection policyRule = ruleGroup.RuleCollections[0] as FirewallPolicyNatRuleCollection;
Assert.Equal(typeof(NatRule), policyRule.Rules[0].GetType());

}
}
Expand Down