#[cfg(any(test, feature = "test-support"))]
use crate::mock_client::{ExpectationBuilder, MockClient};
#[cfg(any(test, feature = "test-support"))]
pub trait RbacMockHelpers {
fn expect_list_role_definitions(&mut self, subscription_id: &str) -> ExpectationBuilder<'_>;
fn expect_get_role_definition(
&mut self,
subscription_id: &str,
role_definition_id: &str,
) -> ExpectationBuilder<'_>;
fn expect_list_role_assignments(&mut self, subscription_id: &str) -> ExpectationBuilder<'_>;
fn expect_get_role_assignment(
&mut self,
subscription_id: &str,
role_assignment_id: &str,
) -> ExpectationBuilder<'_>;
fn expect_create_role_assignment(
&mut self,
subscription_id: &str,
role_assignment_name: &str,
) -> ExpectationBuilder<'_>;
fn expect_delete_role_assignment(
&mut self,
subscription_id: &str,
role_assignment_id: &str,
) -> ExpectationBuilder<'_>;
}
#[cfg(any(test, feature = "test-support"))]
impl RbacMockHelpers for MockClient {
fn expect_list_role_definitions(
&mut self,
subscription_id: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleDefinitions"
);
self.expect_get(&path)
}
fn expect_get_role_definition(
&mut self,
subscription_id: &str,
role_definition_id: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleDefinitions/{role_definition_id}"
);
self.expect_get(&path)
}
fn expect_list_role_assignments(
&mut self,
subscription_id: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleAssignments"
);
self.expect_get(&path)
}
fn expect_get_role_assignment(
&mut self,
subscription_id: &str,
role_assignment_id: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleAssignments/{role_assignment_id}"
);
self.expect_get(&path)
}
fn expect_create_role_assignment(
&mut self,
subscription_id: &str,
role_assignment_name: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleAssignments/{role_assignment_name}"
);
self.expect_put(&path)
}
fn expect_delete_role_assignment(
&mut self,
subscription_id: &str,
role_assignment_id: &str,
) -> crate::mock_client::ExpectationBuilder<'_> {
let path = format!(
"/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleAssignments/{role_assignment_id}"
);
self.expect_delete(&path)
}
}