use crate::test_helpers::*;
use predicates::prelude::*;
use std::error::Error;
#[test]
fn test_runtime_parameters_across_groups() -> Result<(), Box<dyn Error>> {
let vh = "rabbitmqadmin.runtime_parameters.test1";
delete_vhost(vh).expect("failed to delete a virtual host");
run_succeeds(["declare", "vhost", "--name", vh]);
run_succeeds([
"-V",
vh,
"declare",
"parameter",
"--component",
"federation-upstream",
"--name",
"my-upstream",
"--value",
"{\"uri\":\"amqp://target.hostname\"}",
]);
await_metric_emission(200);
run_succeeds([
"-V",
vh,
"list",
"parameters",
"--component",
"federation-upstream",
])
.stdout(output_includes("my-upstream"));
run_succeeds([
"-V",
vh,
"delete",
"parameter",
"--component",
"federation-upstream",
"--name",
"my-upstream",
]);
run_succeeds([
"-V",
vh,
"list",
"parameters",
"--component",
"federation-upstream",
])
.stdout(output_includes("my-upstream").not());
delete_vhost(vh).expect("failed to delete a virtual host");
Ok(())
}
#[test]
fn test_runtime_parameters_cmd_group() -> Result<(), Box<dyn Error>> {
let vh = "rabbitmqadmin.runtime_parameters.test2";
delete_vhost(vh).expect("failed to delete a virtual host");
run_succeeds(["vhosts", "declare", "--name", vh]);
run_succeeds([
"-V",
vh,
"parameters",
"set",
"--component",
"federation-upstream",
"--name",
"my-upstream",
"--value",
"{\"uri\":\"amqp://target.hostname\",\"ack-mode\":\"on-confirm\"}",
]);
await_metric_emission(200);
run_succeeds(["parameters", "list_all"]).stdout(output_includes("my-upstream"));
run_succeeds([
"-V",
vh,
"parameters",
"list",
"--component",
"federation-upstream",
])
.stdout(output_includes("my-upstream"));
run_succeeds([
"-V",
vh,
"parameters",
"list_in",
"--component",
"federation-upstream",
])
.stdout(output_includes("my-upstream"));
run_succeeds([
"-V",
vh,
"parameters",
"delete",
"--component",
"federation-upstream",
"--name",
"my-upstream",
]);
run_succeeds([
"-V",
vh,
"parameters",
"list",
"--component",
"federation-upstream",
])
.stdout(output_includes("my-upstream").not());
delete_vhost(vh).expect("failed to delete a virtual host");
Ok(())
}
#[test]
fn test_global_runtime_parameters_cmd_group() -> Result<(), Box<dyn Error>> {
run_succeeds([
"global_parameters",
"set",
"--name",
"cluster_tags",
"--value",
"{\"region\": \"ca-central-1\"}",
]);
run_succeeds(["global_parameters", "list"])
.stdout(output_includes("region").and(output_includes("ca-central-1")));
run_succeeds(["global_parameters", "delete", "--name", "cluster_tags"]);
run_succeeds(["global_parameters", "list"]).stdout(output_includes("cluster_tags").not());
Ok(())
}
#[test]
fn test_parameters_clear_idempotently() -> Result<(), Box<dyn Error>> {
let vh = "rabbitmqadmin.runtime_parameters.test3";
let param_name = "test_param_delete_idempotently";
let component = "federation-upstream";
delete_vhost(vh).expect("failed to delete a virtual host");
run_succeeds(["declare", "vhost", "--name", vh]);
run_succeeds([
"-V",
vh,
"parameters",
"clear",
"--name",
param_name,
"--component",
component,
"--idempotently",
]);
run_succeeds([
"-V",
vh,
"parameters",
"set",
"--name",
param_name,
"--component",
component,
"--value",
r#"{"uri": "amqp://localhost"}"#,
]);
run_succeeds([
"-V",
vh,
"parameters",
"clear",
"--name",
param_name,
"--component",
component,
]);
run_succeeds([
"-V",
vh,
"parameters",
"clear",
"--name",
param_name,
"--component",
component,
"--idempotently",
]);
delete_vhost(vh).expect("failed to delete a virtual host");
Ok(())
}
#[test]
fn test_global_parameters_clear_idempotently() -> Result<(), Box<dyn Error>> {
let param_name = "test_global_param_delete_idempotently";
run_succeeds([
"global_parameters",
"set",
"--name",
param_name,
"--value",
r#"{"test": "value"}"#,
]);
run_succeeds(["global_parameters", "clear", "--name", param_name]);
run_succeeds([
"global_parameters",
"set",
"--name",
param_name,
"--value",
r#"{"test": "value2"}"#,
]);
run_succeeds([
"global_parameters",
"clear",
"--name",
param_name,
"--idempotently",
]);
Ok(())
}