use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct StartCeremonyRequest {
pub ceremony_id: String,
pub definition_name: String,
pub definition_version: String,
pub context: BTreeMap<String, serde_json::Value>,
pub actor_id: String,
pub actor_kind: String,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn a_request_survives_the_wire() {
let request = StartCeremonyRequest {
ceremony_id: "c-1".to_owned(),
definition_name: "scope_discovery".to_owned(),
definition_version: "1.0".to_owned(),
context: BTreeMap::from([(
"requested_by".to_owned(),
serde_json::Value::String("consumer-1".to_owned()),
)]),
actor_id: "operator-1".to_owned(),
actor_kind: "service".to_owned(),
};
let bytes = serde_json::to_vec(&request).expect("serializes");
assert_eq!(
serde_json::from_slice::<StartCeremonyRequest>(&bytes).expect("deserializes"),
request
);
}
}