Skip to content

Commit 9ab8dc5

Browse files
Tests for message field getters / setters
Signed-off-by: Luca Della Vedova <[email protected]>
1 parent 0c11ea0 commit 9ab8dc5

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

rclrs/src/dynamic_message.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,4 +522,43 @@ mod tests {
522522
Err(DynamicMessageError::RequiredPrefixNotSourced { .. })
523523
));
524524
}
525+
526+
#[test]
527+
fn message_getters_setters() {
528+
let message_type = MessageTypeName {
529+
package_name: "test_msgs".to_owned(),
530+
type_name: "BasicTypes".to_owned(),
531+
};
532+
let mut message = DynamicMessage::new(message_type).unwrap();
533+
534+
{
535+
// Access non existing values
536+
assert!(message.get("invalid_value").is_none());
537+
}
538+
539+
{
540+
// Get then set a sample value
541+
let value = message.get_mut("int32_value").unwrap();
542+
let ValueMut::Simple(value) = value else {
543+
panic!("Unexpected value type, expected Simple value");
544+
};
545+
let SimpleValueMut::Int32(value) = value else {
546+
panic!("Unexpected value type, expected Int32");
547+
};
548+
assert_eq!(*value, 0);
549+
*value = 42;
550+
}
551+
552+
{
553+
// Read previously set value
554+
let value = message.get("int32_value").unwrap();
555+
let Value::Simple(value) = value else {
556+
panic!("Unexpected value type, expected Simple value");
557+
};
558+
let SimpleValue::Int32(value) = value else {
559+
panic!("Unexpected value type, expected Int32");
560+
};
561+
assert_eq!(*value, 42);
562+
}
563+
}
525564
}

0 commit comments

Comments
 (0)