complete another test
This commit is contained in:
parent
df28ab68f4
commit
018c2593f8
@ -334,11 +334,12 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_mode_commanding_one_child() {
|
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();
|
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);
|
let expected_mode = ModeAndSubmode::new(ExampleMode::Mode1 as u32, 0);
|
||||||
assy_helper
|
dev_mgmt_helper
|
||||||
.send_mode_cmd_to_one_child(
|
.send_mode_cmd_to_one_child(
|
||||||
1,
|
1,
|
||||||
ExampleId::Id1 as u64,
|
ExampleId::Id1 as u64,
|
||||||
@ -359,10 +360,10 @@ mod tests {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
matches!(
|
matches!(
|
||||||
assy_helper.state(),
|
dev_mgmt_helper.state(),
|
||||||
DevManagerCommandingState::AwaitingReplies { .. }
|
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.target_mode, expected_mode);
|
||||||
assert_eq!(ctx.active_request_id, 1);
|
assert_eq!(ctx.active_request_id, 1);
|
||||||
}
|
}
|
||||||
@ -373,11 +374,75 @@ mod tests {
|
|||||||
if let DevManagerHelperResult::ModeCommandingDone(ActiveModeCommandContext {
|
if let DevManagerHelperResult::ModeCommandingDone(ActiveModeCommandContext {
|
||||||
target_mode,
|
target_mode,
|
||||||
active_request_id,
|
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!(target_mode, expected_mode);
|
||||||
assert_eq!(active_request_id, 1);
|
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