in core/cli/src/args/permissions/stream.rs [295:443]
fn should_deserialize_permissions() {
assert_eq!(
StreamPermissionsArg::from_str(
"1:manage_stream,read_stream,manage_topics,read_topics,poll_messages,send_messages"
)
.unwrap(),
StreamPermissionsArg {
stream_id: 1,
permissions: StreamPermissions {
manage_stream: true,
read_stream: true,
manage_topics: true,
read_topics: true,
poll_messages: true,
send_messages: true,
topics: None,
}
}
);
assert_eq!(
StreamPermissionsArg::from_str("1:manage_topics,read_topics").unwrap(),
StreamPermissionsArg {
stream_id: 1,
permissions: StreamPermissions {
manage_stream: false,
read_stream: false,
manage_topics: true,
read_topics: true,
poll_messages: false,
send_messages: false,
topics: None,
}
}
);
assert_eq!(
StreamPermissionsArg::from_str("39:send_messages,read_topics,read_stream").unwrap(),
StreamPermissionsArg {
stream_id: 39,
permissions: StreamPermissions {
manage_stream: false,
read_stream: true,
manage_topics: false,
read_topics: true,
poll_messages: false,
send_messages: true,
topics: None,
}
}
);
assert_eq!(
StreamPermissionsArg::from_str("71").unwrap(),
StreamPermissionsArg {
stream_id: 71,
permissions: StreamPermissions {
manage_stream: false,
read_stream: false,
manage_topics: false,
read_topics: false,
poll_messages: false,
send_messages: false,
topics: None,
}
}
);
assert_eq!(
StreamPermissionsArg::from_str("9:send_messages").unwrap(),
StreamPermissionsArg {
stream_id: 9,
permissions: StreamPermissions {
manage_stream: false,
read_stream: false,
manage_topics: false,
read_topics: false,
poll_messages: false,
send_messages: true,
topics: None,
}
}
);
assert_eq!(
StreamPermissionsArg::from_str("9#1#2").unwrap(),
StreamPermissionsArg {
stream_id: 9,
permissions: StreamPermissions {
manage_stream: false,
read_stream: false,
manage_topics: false,
read_topics: false,
poll_messages: false,
send_messages: false,
topics: Some(AHashMap::from([
(
2,
TopicPermissions {
manage_topic: false,
read_topic: false,
poll_messages: false,
send_messages: false,
}
),
(
1,
TopicPermissions {
manage_topic: false,
read_topic: false,
poll_messages: false,
send_messages: false,
}
)
])),
}
}
);
assert_eq!(
StreamPermissionsArg::from_str("4:manage_topics#1:manage_topic#2:manage_topic")
.unwrap(),
StreamPermissionsArg {
stream_id: 4,
permissions: StreamPermissions {
manage_stream: false,
read_stream: false,
manage_topics: true,
read_topics: false,
poll_messages: false,
send_messages: false,
topics: Some(AHashMap::from([
(
2,
TopicPermissions {
manage_topic: true,
read_topic: false,
poll_messages: false,
send_messages: false,
}
),
(
1,
TopicPermissions {
manage_topic: true,
read_topic: false,
poll_messages: false,
send_messages: false,
}
)
])),
}
}
);
}