private static void AssertValidPolicyDefinition(SubscriptionPolicyDefinitionResource model, SubscriptionPolicyDefinitionResource getResult) { Assert.AreEqual(model.Data.Name, getResult.Data.Name); Assert.AreEqual(model.Data.Id, getResult.Data.Id); Assert.AreEqual(model.Data.ResourceType, getResult.Data.ResourceType); Assert.AreEqual(model.Data.PolicyType, getResult.Data.PolicyType); Assert.AreEqual(model.Data.Mode, getResult.Data.Mode); Assert.AreEqual(model.Data.DisplayName, getResult.Data.DisplayName); Assert.AreEqual(model.Data.Description, getResult.Data.Description); Assert.AreEqual(model.Data.PolicyRule.ToArray(), getResult.Data.PolicyRule.ToArray()); Assert.AreEqual(model.Data.Metadata.ToArray(), getResult.Data.Metadata.ToArray()); if (model.Data.Parameters != null || getResult.Data.Parameters != null) { Assert.NotNull(model.Data.Parameters); Assert.NotNull(getResult.Data.Parameters); Assert.AreEqual(model.Data.Parameters.Count, getResult.Data.Parameters.Count); foreach (KeyValuePair <string, ArmPolicyParameter> kvp in model.Data.Parameters) { Assert.AreEqual(getResult.Data.Parameters.ContainsKey(kvp.Key), true); ArmPolicyParameter getParameterDefinitionsValue = getResult.Data.Parameters[kvp.Key]; Assert.AreEqual(kvp.Value.ParameterType, getParameterDefinitionsValue.ParameterType); if (kvp.Value.AllowedValues != null || getParameterDefinitionsValue.AllowedValues != null) { Assert.NotNull(kvp.Value.AllowedValues); Assert.NotNull(getParameterDefinitionsValue.AllowedValues); Assert.AreEqual(kvp.Value.AllowedValues.Count, getParameterDefinitionsValue.AllowedValues.Count); for (int i = 0; i < kvp.Value.AllowedValues.Count; ++i) { Assert.AreEqual(kvp.Value.AllowedValues[i], getParameterDefinitionsValue.AllowedValues[i]); } } Assert.AreEqual(kvp.Value.DefaultValue, getParameterDefinitionsValue.DefaultValue); if (kvp.Value.Metadata != null || getParameterDefinitionsValue.Metadata != null) { Assert.NotNull(kvp.Value.Metadata); Assert.NotNull(getParameterDefinitionsValue.Metadata); Assert.AreEqual(kvp.Value.Metadata.DisplayName, getParameterDefinitionsValue.Metadata.DisplayName); Assert.AreEqual(kvp.Value.Metadata.Description, getParameterDefinitionsValue.Metadata.Description); Assert.AreEqual(kvp.Value.Metadata.StrongType, getParameterDefinitionsValue.Metadata.StrongType); Assert.AreEqual(kvp.Value.Metadata.AssignPermissions, getParameterDefinitionsValue.Metadata.AssignPermissions); Assert.AreEqual(kvp.Value.Metadata.AdditionalProperties, getParameterDefinitionsValue.Metadata.AdditionalProperties); } } } }
internal static PolicySetDefinitionData DeserializePolicySetDefinitionData(JsonElement element) { ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <PolicyType> policyType = default; Optional <string> displayName = default; Optional <string> description = default; Optional <BinaryData> metadata = default; Optional <IDictionary <string, ArmPolicyParameter> > parameters = default; Optional <IList <PolicyDefinitionReference> > policyDefinitions = default; Optional <IList <PolicyDefinitionGroup> > policyDefinitionGroups = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("policyType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } policyType = new PolicyType(property0.Value.GetString()); continue; } if (property0.NameEquals("displayName")) { displayName = property0.Value.GetString(); continue; } if (property0.NameEquals("description")) { description = property0.Value.GetString(); continue; } if (property0.NameEquals("metadata")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } metadata = BinaryData.FromString(property0.Value.GetRawText()); continue; } if (property0.NameEquals("parameters")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, ArmPolicyParameter> dictionary = new Dictionary <string, ArmPolicyParameter>(); foreach (var property1 in property0.Value.EnumerateObject()) { dictionary.Add(property1.Name, ArmPolicyParameter.DeserializeArmPolicyParameter(property1.Value)); } parameters = dictionary; continue; } if (property0.NameEquals("policyDefinitions")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <PolicyDefinitionReference> array = new List <PolicyDefinitionReference>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(PolicyDefinitionReference.DeserializePolicyDefinitionReference(item)); } policyDefinitions = array; continue; } if (property0.NameEquals("policyDefinitionGroups")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <PolicyDefinitionGroup> array = new List <PolicyDefinitionGroup>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(PolicyDefinitionGroup.DeserializePolicyDefinitionGroup(item)); } policyDefinitionGroups = array; continue; } } continue; } } return(new PolicySetDefinitionData(id, name, type, systemData, Optional.ToNullable(policyType), displayName.Value, description.Value, metadata.Value, Optional.ToDictionary(parameters), Optional.ToList(policyDefinitions), Optional.ToList(policyDefinitionGroups))); }
private static void AssertValidPolicySetDefinition(SubscriptionPolicySetDefinitionResource model, SubscriptionPolicySetDefinitionResource getResult) { Assert.AreEqual(model.Data.Name, getResult.Data.Name); Assert.AreEqual(model.Data.Id, getResult.Data.Id); Assert.AreEqual(model.Data.ResourceType, getResult.Data.ResourceType); Assert.AreEqual(model.Data.PolicyType, getResult.Data.PolicyType); Assert.AreEqual(model.Data.DisplayName, getResult.Data.DisplayName); Assert.AreEqual(model.Data.Description, getResult.Data.Description); Assert.AreEqual(model.Data.Metadata.ToArray(), getResult.Data.Metadata.ToArray()); if (model.Data.Parameters != null || getResult.Data.Parameters != null) { Assert.NotNull(model.Data.Parameters); Assert.NotNull(getResult.Data.Parameters); Assert.AreEqual(model.Data.Parameters.Count, getResult.Data.Parameters.Count); foreach (KeyValuePair <string, ArmPolicyParameter> kvp in model.Data.Parameters) { Assert.AreEqual(getResult.Data.Parameters.ContainsKey(kvp.Key), true); ArmPolicyParameter getParameterDefinitionsValue = getResult.Data.Parameters[kvp.Key]; Assert.AreEqual(kvp.Value.ParameterType, getParameterDefinitionsValue.ParameterType); if (kvp.Value.AllowedValues != null || getParameterDefinitionsValue.AllowedValues != null) { Assert.NotNull(kvp.Value.AllowedValues); Assert.NotNull(getParameterDefinitionsValue.AllowedValues); Assert.AreEqual(kvp.Value.AllowedValues.Count, getParameterDefinitionsValue.AllowedValues.Count); for (int i = 0; i < kvp.Value.AllowedValues.Count; ++i) { Assert.AreEqual(kvp.Value.AllowedValues[i], getParameterDefinitionsValue.AllowedValues[i]); } } Assert.AreEqual(kvp.Value.DefaultValue, getParameterDefinitionsValue.DefaultValue); if (kvp.Value.Metadata != null || getParameterDefinitionsValue.Metadata != null) { Assert.NotNull(kvp.Value.Metadata); Assert.NotNull(getParameterDefinitionsValue.Metadata); Assert.AreEqual(kvp.Value.Metadata.DisplayName, getParameterDefinitionsValue.Metadata.DisplayName); Assert.AreEqual(kvp.Value.Metadata.Description, getParameterDefinitionsValue.Metadata.Description); Assert.AreEqual(kvp.Value.Metadata.StrongType, getParameterDefinitionsValue.Metadata.StrongType); Assert.AreEqual(kvp.Value.Metadata.AssignPermissions, getParameterDefinitionsValue.Metadata.AssignPermissions); Assert.AreEqual(kvp.Value.Metadata.AdditionalProperties, getParameterDefinitionsValue.Metadata.AdditionalProperties); } } } Assert.AreEqual(model.Data.PolicyDefinitions.Count, getResult.Data.PolicyDefinitions.Count); foreach (var expectedDefinition in model.Data.PolicyDefinitions) { var resultDefinitions = getResult.Data.PolicyDefinitions.Where(def => def.PolicyDefinitionId.Equals(expectedDefinition.PolicyDefinitionId)); Assert.True(resultDefinitions.Count() > 0); var resultDefinition = resultDefinitions.Single(def => expectedDefinition.PolicyDefinitionReferenceId == null || expectedDefinition.PolicyDefinitionReferenceId.Equals(def.PolicyDefinitionReferenceId, StringComparison.Ordinal)); if (expectedDefinition.GroupNames != null) { Assert.AreEqual(expectedDefinition.GroupNames.Count(), resultDefinition.GroupNames.Count()); Assert.AreEqual(expectedDefinition.GroupNames.Count(), expectedDefinition.GroupNames.Intersect(resultDefinition.GroupNames).Count()); } else { Assert.Null(resultDefinition.GroupNames); } } if (model.Data.PolicyDefinitionGroups != null) { foreach (var group in model.Data.PolicyDefinitionGroups) { Assert.AreEqual(1, getResult.Data.PolicyDefinitionGroups.Count(resultGroup => resultGroup.Name.Equals(group.Name, StringComparison.Ordinal))); } } else { Assert.Null(getResult.Data.PolicyDefinitionGroups); } }