blob: 56ca887b0a793b240ac34b6f7f755e0c7569c370 [file]
use iggy::models::permissions::Permissions;
#[derive(Debug, Clone, Default)]
pub(crate) struct PermissionsTestArgs {
pub(crate) global_permissions: Option<String>,
pub(crate) stream_permissions: Vec<String>,
pub(crate) expected_permissions: Option<Permissions>,
}
impl PermissionsTestArgs {
pub(crate) fn new(
global_permissions: Option<String>,
stream_permissions: Vec<String>,
expected_permissions: Option<Permissions>,
) -> Self {
Self {
global_permissions,
stream_permissions,
expected_permissions,
}
}
pub(crate) fn as_arg(&self) -> Vec<String> {
let mut args = vec![];
if let Some(global_permissions) = &self.global_permissions {
args.push(String::from("--global-permissions"));
args.push(global_permissions.clone());
}
args.extend(
self.stream_permissions
.iter()
.flat_map(|i| vec![String::from("--stream-permissions"), i.clone()])
.collect::<Vec<String>>(),
);
args
}
}