public void TestDeserializerValidSystemAssigned() { var identityJsonProperty = DeserializerHelper("SystemAssigned.json"); ResourceIdentity back = ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); Assert.IsTrue("22fddec1-8b9f-49dc-bd72-ddaf8f215577".Equals(back.SystemAssignedIdentity.PrincipalId.ToString())); Assert.IsTrue("72f988bf-86f1-41af-91ab-2d7cd011db47".Equals(back.SystemAssignedIdentity.TenantId.ToString())); Assert.IsTrue(back.UserAssignedIdentities.Count == 0); }
public void TestDeserializerInvalidType() { var identityJsonProperty = DeserializerHelper("InvalidType.json"); ResourceIdentity back = ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); var user = back.UserAssignedIdentities; Assert.AreEqual("/subscriptions/d96407f5-db8f-4325-b582-84ad21310bd8/resourceGroups/tester/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity", user.Keys.First().ToString()); Assert.AreEqual("9a2eaa6a-b49c-4a63-afb5-3b72e3e65422", user.Values.First().ClientId.ToString()); Assert.AreEqual("77563a98-c9d9-4f7b-a7af-592d21fa2153", user.Values.First().PrincipalId.ToString()); }
public void TestDeserializerValidUserAssigned() { var identityJsonProperty = DeserializerHelper("UserAssigned.json"); ResourceIdentity back = ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); Assert.IsNull(back.SystemAssignedIdentity); var user = back.UserAssignedIdentities; Assert.AreEqual("/subscriptions/db1ab6f0-4769-4b2e-930e-01e2ef9c123c/resourceGroups/tester-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity", user.Keys.First().ToString()); Assert.AreEqual("9a2eaa6a-b49c-4c63-afb5-3b72e3e65422", user.Values.First().ClientId.ToString()); Assert.AreEqual("77563a98-c9d9-477b-a7af-592d21fa2153", user.Values.First().PrincipalId.ToString()); }
public void TestDeserializerValidMiddleExtraField() { var identityJsonProperty = DeserializerHelper("SystemAndUserAssignedMiddleExtraField.json"); ResourceIdentity back = ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); Assert.IsTrue("22fddec1-8b9f-49dc-bd72-ddaf8f215577".Equals(back.SystemAssignedIdentity.PrincipalId.ToString())); Assert.IsTrue("72f988bf-86f1-41af-91ab-2d7cd011db47".Equals(back.SystemAssignedIdentity.TenantId.ToString())); var user = back.UserAssignedIdentities; Assert.AreEqual("/subscriptions/db1ab6f0-4769-4b27-9dde-01e2ef9c123c/resourceGroups/tester/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity", user.Keys.First().ToString()); Assert.AreEqual("9a9eaa6a-b49c-4c63-afb5-3b72e3e65422", user.Values.First().ClientId.ToString()); Assert.AreEqual("77563a98-c9d9-407b-a7af-592d21fa2153", user.Values.First().PrincipalId.ToString()); }
public void TestDeserializerValidSystemAndMultUser() { var identityJsonProperty = DeserializerHelper("SystemAndUserAssignedValidMultIdentities.json"); ResourceIdentity back = ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); Assert.IsTrue("22fddec1-8b9f-49dc-bd72-ddaf8f215570".Equals(back.SystemAssignedIdentity.PrincipalId.ToString())); Assert.IsTrue("72f988bf-86f1-41af-91ab-2d7cd011db40".Equals(back.SystemAssignedIdentity.TenantId.ToString())); var user = back.UserAssignedIdentities; Assert.AreEqual("/subscriptions/1ab27dfb-d2ee-4283-b1e3-550deaebb8e4/resourceGroups/tester/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity0", user.Keys.First().ToString()); Assert.AreEqual("9a2eaa6a-b49c-4c63-afb5-3b72e3e65422", user.Values.First().ClientId.ToString()); Assert.AreEqual("77563a98-c9d9-477b-a7af-592d21fa2153", user.Values.First().PrincipalId.ToString()); Assert.AreEqual("/subscriptions/d96407f5-db8f-4325-b582-84ad21310bd8/resourceGroups/tester/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity1", user.Keys.ElementAt(1).ToString()); Assert.AreEqual("9a2eaa6a-b49c-4c63-afb5-3b72e3c65420", user.Values.ElementAt(1).ClientId.ToString()); Assert.AreEqual("77563a98-c9d9-477b-a7af-592d2bfa2150", user.Values.ElementAt(1).PrincipalId.ToString()); }
public void TestDeserializerValidOuterExtraField() { var json = File.ReadAllText(Path.Combine(TestAssetPath, "SystemAndUserAssignedOuterExtraField.json")); JsonDocument document = JsonDocument.Parse(json); JsonElement rootElement = document.RootElement; var identityJsonProperty = rootElement.EnumerateObject().ElementAt(1); ResourceIdentity back = ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); Assert.IsTrue("22fddec1-8b9f-49dc-bd72-ddaf8f215577".Equals(back.SystemAssignedIdentity.PrincipalId.ToString())); Assert.IsTrue("72f988bf-86f1-41af-91ab-2d7cd011db47".Equals(back.SystemAssignedIdentity.TenantId.ToString())); var user = back.UserAssignedIdentities; Assert.AreEqual("/subscriptions/db1ab6f0-3466-4b27-930e-01e2ef9c123c/resourceGroups/tester/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity", user.Keys.First().ToString()); Assert.AreEqual("9a2eaa6b-b49c-4c63-afb5-3b72e3e65422", user.Values.First().ClientId.ToString()); Assert.AreEqual("7756fa98-c9d9-477b-a7af-592d21fa2153", user.Values.First().PrincipalId.ToString()); }
internal static GenericResourceData DeserializeGenericResource(JsonElement element) { Optional <DateTimeOffset> createdTime = default; Optional <DateTimeOffset> changedTime = default; Optional <string> provisioningState = default; Optional <Plan> plan = default; Optional <object> properties = default; Optional <string> kind = default; Optional <string> managedBy = default; Optional <Sku> sku = default; Optional <ResourceIdentity> identity = default; Optional <string> id = default; Optional <string> name = default; Optional <string> type = default; Optional <string> location = default; Optional <IDictionary <string, string> > tags = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("createdTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } createdTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("changedTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } changedTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("provisioningState")) { provisioningState = property.Value.GetString(); continue; } if (property.NameEquals("plan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } plan = Plan.DeserializePlan(property.Value); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } properties = property.Value.GetObject(); continue; } if (property.NameEquals("kind")) { kind = property.Value.GetString(); continue; } if (property.NameEquals("managedBy")) { managedBy = property.Value.GetString(); continue; } if (property.NameEquals("sku")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sku = Sku.DeserializeSku(property.Value); continue; } if (property.NameEquals("identity")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } identity = ResourceIdentity.DeserializeResourceIdentity(property.Value); continue; } if (property.NameEquals("id")) { id = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("tags")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } } return(new GenericResourceData(id.Value, name.Value, type.Value, location.Value, Optional.ToDictionary(tags), plan.Value, properties.Value, kind.Value, managedBy.Value, sku.Value, identity.Value, Optional.ToNullable(createdTime), Optional.ToNullable(changedTime), provisioningState.Value)); }
public void TestDeserializerInvalidNullType() { var identityJsonProperty = DeserializerHelper("InvalidTypeIsNull.json"); Assert.Throws <InvalidOperationException>(delegate { ResourceIdentity.DeserializeResourceIdentity(identityJsonProperty.Value); }); }
public void TestDeserializerInvalidDefaultJson() { JsonElement invalid = default(JsonElement); Assert.Throws <ArgumentException>(delegate { ResourceIdentity.DeserializeResourceIdentity(invalid); }); }