use rabbitmq_http_client::{blocking_api::Client, requests::StreamParams};
use serde_json::{Map, Value, json};
use crate::test_helpers::{PASSWORD, USERNAME, endpoint};
#[test]
fn test_blocking_declare_stream() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
let vhost = "/";
let name = "rust.tests.blocking.stream.792879823479";
let expiration = "24h";
let _ = rc.delete_stream(vhost, name, false);
let result1 = rc.get_stream_info(vhost, name);
assert!(result1.is_err());
let mut map = Map::<String, Value>::new();
map.insert("x-initial-cluster-size".to_owned(), json!(3));
let optional_args = Some(map);
let params = StreamParams {
name,
expiration,
max_length_bytes: None,
max_segment_length_bytes: None,
arguments: optional_args,
};
let result2 = rc.declare_stream(vhost, ¶ms);
assert!(result2.is_ok(), "declare_stream returned {result2:?}");
let _ = rc.delete_stream(vhost, name, false);
}
#[test]
fn test_blocking_delete_stream() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
let vhost = "/";
let name = "rust.tests.blocking.stream.67816479475";
let _ = rc.delete_stream(vhost, name, false);
let result1 = rc.get_stream_info(vhost, name);
assert!(result1.is_err());
let params = StreamParams::new(name, "7D");
let result2 = rc.declare_stream(vhost, ¶ms);
assert!(result2.is_ok(), "declare_stream returned {result2:?}");
rc.delete_stream(vhost, name, false).unwrap();
rc.delete_stream(vhost, name, true).unwrap();
assert!(rc.delete_stream(vhost, name, false).is_err());
let result3 = rc.get_stream_info(vhost, name);
assert!(result3.is_err());
}