use super::*;
use crate::fleet::Verb as Fleet;
#[test]
fn arming_and_disbanding_round_trip() {
rt(Gesture::Act(Action::Fleet(Fleet::Arm {
workspace: "ws".into(),
project: "proj".into(),
cap: 4,
})));
rt(Gesture::Act(Action::Fleet(Fleet::Disarm {
workspace: "ws".into(),
})));
}
#[test]
fn an_arm_missing_a_field_or_carrying_a_bad_cap_refuses() {
for envelope in [
serde_json::json!({ "op": "fleet", "project": "/proj", "cap": 1 }),
serde_json::json!({ "op": "fleet", "workspace": "/ws", "cap": 1 }),
serde_json::json!({ "op": "fleet", "workspace": "/ws", "project": "/proj" }),
serde_json::json!({ "op": "fleet", "workspace": "/ws", "project": "/proj", "cap": "lots" }),
] {
assert!(decode(&envelope).is_err(), "{envelope}");
}
assert!(decode(&serde_json::json!({ "op": "disband" })).is_err());
}