complete another test
This commit is contained in:
parent
df28ab68f4
commit
018c2593f8
@ -334,11 +334,12 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_mode_commanding_one_child() {
|
||||
let mut assy_helper = DevManagerCommandingHelper::new(TransparentDevManagerHook::default());
|
||||
let mut dev_mgmt_helper =
|
||||
DevManagerCommandingHelper::new(TransparentDevManagerHook::default());
|
||||
let mode_req_sender = ModeReqSenderMock::default();
|
||||
assy_helper.add_mode_child(ExampleId::Id1 as u64, UNKNOWN_MODE);
|
||||
dev_mgmt_helper.add_mode_child(ExampleId::Id1 as u64, UNKNOWN_MODE);
|
||||
let expected_mode = ModeAndSubmode::new(ExampleMode::Mode1 as u32, 0);
|
||||
assy_helper
|
||||
dev_mgmt_helper
|
||||
.send_mode_cmd_to_one_child(
|
||||
1,
|
||||
ExampleId::Id1 as u64,
|
||||
@ -359,10 +360,10 @@ mod tests {
|
||||
}
|
||||
);
|
||||
matches!(
|
||||
assy_helper.state(),
|
||||
dev_mgmt_helper.state(),
|
||||
DevManagerCommandingState::AwaitingReplies { .. }
|
||||
);
|
||||
if let DevManagerCommandingState::AwaitingReplies(ctx) = assy_helper.state() {
|
||||
if let DevManagerCommandingState::AwaitingReplies(ctx) = dev_mgmt_helper.state() {
|
||||
assert_eq!(ctx.target_mode, expected_mode);
|
||||
assert_eq!(ctx.active_request_id, 1);
|
||||
}
|
||||
@ -373,11 +374,75 @@ mod tests {
|
||||
if let DevManagerHelperResult::ModeCommandingDone(ActiveModeCommandContext {
|
||||
target_mode,
|
||||
active_request_id,
|
||||
}) = assy_helper.handle_mode_reply(&reply).unwrap()
|
||||
}) = dev_mgmt_helper.handle_mode_reply(&reply).unwrap()
|
||||
{
|
||||
assert_eq!(target_mode, expected_mode);
|
||||
assert_eq!(active_request_id, 1);
|
||||
}
|
||||
matches!(assy_helper.state(), DevManagerCommandingState::Idle);
|
||||
matches!(dev_mgmt_helper.state(), DevManagerCommandingState::Idle);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_mode_commanding_multi_child() {
|
||||
let mut dev_mgmt_helper =
|
||||
DevManagerCommandingHelper::new(TransparentDevManagerHook::default());
|
||||
let mode_req_sender = ModeReqSenderMock::default();
|
||||
dev_mgmt_helper.add_mode_child(ExampleId::Id1 as u64, UNKNOWN_MODE);
|
||||
dev_mgmt_helper.add_mode_child(ExampleId::Id2 as u64, UNKNOWN_MODE);
|
||||
let expected_mode = ModeAndSubmode::new(ExampleMode::Mode2 as u32, 0);
|
||||
dev_mgmt_helper
|
||||
.send_mode_cmd_to_all_children(1, expected_mode, false, &mode_req_sender)
|
||||
.unwrap();
|
||||
assert_eq!(mode_req_sender.requests.borrow().len(), 2);
|
||||
let req = mode_req_sender.requests.borrow_mut().pop_front().unwrap();
|
||||
assert_eq!(req.target_id, ExampleId::Id1 as u64);
|
||||
assert_eq!(req.request_id, 1);
|
||||
assert_eq!(
|
||||
req.request,
|
||||
ModeRequest::SetMode {
|
||||
mode_and_submode: expected_mode,
|
||||
forced: false
|
||||
}
|
||||
);
|
||||
let req = mode_req_sender.requests.borrow_mut().pop_front().unwrap();
|
||||
assert_eq!(req.target_id, ExampleId::Id2 as u64);
|
||||
assert_eq!(req.request_id, 1);
|
||||
assert_eq!(
|
||||
req.request,
|
||||
ModeRequest::SetMode {
|
||||
mode_and_submode: expected_mode,
|
||||
forced: false
|
||||
}
|
||||
);
|
||||
matches!(
|
||||
dev_mgmt_helper.state(),
|
||||
DevManagerCommandingState::AwaitingReplies { .. }
|
||||
);
|
||||
if let DevManagerCommandingState::AwaitingReplies(ctx) = dev_mgmt_helper.state() {
|
||||
assert_eq!(ctx.target_mode, expected_mode);
|
||||
assert_eq!(ctx.active_request_id, 1);
|
||||
}
|
||||
|
||||
let reply = GenericMessage::new(
|
||||
MessageMetadata::new(1, ExampleId::Id1 as u64),
|
||||
ModeReply::ModeReply(expected_mode),
|
||||
);
|
||||
assert_eq!(
|
||||
dev_mgmt_helper.handle_mode_reply(&reply).unwrap(),
|
||||
DevManagerHelperResult::Busy
|
||||
);
|
||||
let reply = GenericMessage::new(
|
||||
MessageMetadata::new(1, ExampleId::Id2 as u64),
|
||||
ModeReply::ModeReply(expected_mode),
|
||||
);
|
||||
if let DevManagerHelperResult::ModeCommandingDone(ActiveModeCommandContext {
|
||||
target_mode,
|
||||
active_request_id,
|
||||
}) = dev_mgmt_helper.handle_mode_reply(&reply).unwrap()
|
||||
{
|
||||
assert_eq!(target_mode, expected_mode);
|
||||
assert_eq!(active_request_id, 1);
|
||||
}
|
||||
matches!(dev_mgmt_helper.state(), DevManagerCommandingState::Idle);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user