From 090c990e17c5bcc688cb40cb1c30475e9f4d6437 Mon Sep 17 00:00:00 2001 From: Brian Caswell Date: Mon, 8 Jul 2024 18:16:58 -0400 Subject: [PATCH] extract role assignment parsing test data (#100) --- src/roles.rs | 48 ++------------------------------ tests/data/role-assignments.json | 43 ++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 46 deletions(-) create mode 100644 tests/data/role-assignments.json diff --git a/src/roles.rs b/src/roles.rs index d708f61..46173ef 100644 --- a/src/roles.rs +++ b/src/roles.rs @@ -185,55 +185,11 @@ mod tests { use super::Assignments; use anyhow::Result; use insta::assert_json_snapshot; - use serde_json::json; #[test] fn parse_active() -> Result<()> { - let value = json!({ - "value": [ - { - "id": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleAssignmentScheduleInstances/00000000-0000-0000-0000-000000000003", - "name": "00000000-0000-0000-0000-000000000003", - "properties": { - "assignmentType": "Activated", - "createdOn": "2024-06-19T15:53:15.98Z", - "endDateTime": "2024-06-19T23:53:12.377Z", - "expandedProperties": { - "principal": { - "displayName": "USERNAME", - "email": "user@contoso.com", - "id": "00000000-0000-0000-0000-000000000002", - "type": "User" - }, - "roleDefinition": { - "displayName": "Custom Role Name", - "id": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000004", - "type": "CustomRole" - }, - "scope": { - "displayName": "azure-sub-name", - "id": "/subscriptions/00000000-0000-0000-0000-000000000001", - "type": "subscription" - } - }, - "linkedRoleEligibilityScheduleId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleEligibilitySchedules/00000000-0000-0000-0000-000000000005", - "linkedRoleEligibilityScheduleInstanceId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleEligibilityScheduleInstances/00000000-0000-0000-0000-000000000006", - "memberType": "Group", - "originRoleAssignmentId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000003", - "principalId": "00000000-0000-0000-0000-000000000002", - "principalType": "User", - "roleAssignmentScheduleId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleAssignmentSchedules/00000000-0000-0000-0000-000000000007", - "roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000004", - "scope": "/subscriptions/00000000-0000-0000-0000-000000000001", - "startDateTime": "2024-06-19T15:53:15.98Z", - "status": "Provisioned" - }, - "type": "Microsoft.Authorization/roleAssignmentScheduleInstances" - } - ] - }); - - let assignments = Assignments::parse(&value)?; + const ASSIGNMENTS: &str = include_str!("../tests/data/role-assignments.json"); + let assignments = Assignments::parse(&serde_json::from_str(ASSIGNMENTS)?)?; assert_json_snapshot!(&assignments); Ok(()) } diff --git a/tests/data/role-assignments.json b/tests/data/role-assignments.json new file mode 100644 index 0000000..4402a31 --- /dev/null +++ b/tests/data/role-assignments.json @@ -0,0 +1,43 @@ +{ + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleAssignmentScheduleInstances/00000000-0000-0000-0000-000000000003", + "name": "00000000-0000-0000-0000-000000000003", + "properties": { + "assignmentType": "Activated", + "createdOn": "2024-06-19T15:53:15.98Z", + "endDateTime": "2024-06-19T23:53:12.377Z", + "expandedProperties": { + "principal": { + "displayName": "USERNAME", + "email": "user@contoso.com", + "id": "00000000-0000-0000-0000-000000000002", + "type": "User" + }, + "roleDefinition": { + "displayName": "Custom Role Name", + "id": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000004", + "type": "CustomRole" + }, + "scope": { + "displayName": "azure-sub-name", + "id": "/subscriptions/00000000-0000-0000-0000-000000000001", + "type": "subscription" + } + }, + "linkedRoleEligibilityScheduleId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleEligibilitySchedules/00000000-0000-0000-0000-000000000005", + "linkedRoleEligibilityScheduleInstanceId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleEligibilityScheduleInstances/00000000-0000-0000-0000-000000000006", + "memberType": "Group", + "originRoleAssignmentId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000003", + "principalId": "00000000-0000-0000-0000-000000000002", + "principalType": "User", + "roleAssignmentScheduleId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleAssignmentSchedules/00000000-0000-0000-0000-000000000007", + "roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000001/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000004", + "scope": "/subscriptions/00000000-0000-0000-0000-000000000001", + "startDateTime": "2024-06-19T15:53:15.98Z", + "status": "Provisioned" + }, + "type": "Microsoft.Authorization/roleAssignmentScheduleInstances" + } + ] +}