@@ -93,6 +93,111 @@ TEST_F(TestAnySubscriptionCallback, construct_destruct) {
9393 rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc2 (allocator);
9494}
9595
96+ TEST_F (TestAnySubscriptionCallback, is_serialized_message_callback) {
97+ {
98+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
99+ asc.set ([](const rclcpp::SerializedMessage &) {});
100+ EXPECT_TRUE (asc.is_serialized_message_callback ());
101+ EXPECT_NO_THROW (
102+ asc.dispatch (
103+ std::make_shared<rclcpp::SerializedMessage>(),
104+ rclcpp::MessageInfo{}));
105+ }
106+ {
107+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
108+ asc.set ([](const rclcpp::SerializedMessage &, const rclcpp::MessageInfo &) {});
109+ EXPECT_TRUE (asc.is_serialized_message_callback ());
110+ EXPECT_NO_THROW (
111+ asc.dispatch (
112+ std::make_shared<rclcpp::SerializedMessage>(),
113+ rclcpp::MessageInfo{}));
114+ }
115+ {
116+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
117+ asc.set ([](const rclcpp::SerializedMessage &, const rclcpp::MessageInfo &) {});
118+ EXPECT_TRUE (asc.is_serialized_message_callback ());
119+ EXPECT_NO_THROW (
120+ asc.dispatch (
121+ std::make_shared<rclcpp::SerializedMessage>(),
122+ rclcpp::MessageInfo{}));
123+ }
124+ {
125+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
126+ asc.set ([](std::unique_ptr<rclcpp::SerializedMessage>) {});
127+ EXPECT_TRUE (asc.is_serialized_message_callback ());
128+ EXPECT_NO_THROW (
129+ asc.dispatch (
130+ std::make_shared<rclcpp::SerializedMessage>(),
131+ rclcpp::MessageInfo{}));
132+ }
133+ {
134+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
135+ asc.set ([](std::unique_ptr<rclcpp::SerializedMessage>, const rclcpp::MessageInfo &) {});
136+ EXPECT_TRUE (asc.is_serialized_message_callback ());
137+ EXPECT_NO_THROW (
138+ asc.dispatch (
139+ std::make_shared<rclcpp::SerializedMessage>(),
140+ rclcpp::MessageInfo{}));
141+ }
142+ {
143+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
144+ asc.set ([](std::shared_ptr<const rclcpp::SerializedMessage>) {});
145+ EXPECT_TRUE (asc.is_serialized_message_callback ());
146+ EXPECT_NO_THROW (
147+ asc.dispatch (
148+ std::make_shared<rclcpp::SerializedMessage>(),
149+ rclcpp::MessageInfo{}));
150+ }
151+ {
152+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
153+ asc.set ([](std::shared_ptr<const rclcpp::SerializedMessage>, const rclcpp::MessageInfo &) {});
154+ EXPECT_TRUE (asc.is_serialized_message_callback ());
155+ EXPECT_NO_THROW (
156+ asc.dispatch (
157+ std::make_shared<rclcpp::SerializedMessage>(),
158+ rclcpp::MessageInfo{}));
159+ }
160+ {
161+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
162+ asc.set ([](const std::shared_ptr<const rclcpp::SerializedMessage> &) {});
163+ EXPECT_TRUE (asc.is_serialized_message_callback ());
164+ EXPECT_NO_THROW (
165+ asc.dispatch (
166+ std::make_shared<rclcpp::SerializedMessage>(),
167+ rclcpp::MessageInfo{}));
168+ }
169+ {
170+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
171+ asc.set (
172+ [](
173+ const std::shared_ptr<const rclcpp::SerializedMessage> &,
174+ const rclcpp::MessageInfo &) {});
175+ EXPECT_TRUE (asc.is_serialized_message_callback ());
176+ EXPECT_NO_THROW (
177+ asc.dispatch (
178+ std::make_shared<rclcpp::SerializedMessage>(),
179+ rclcpp::MessageInfo{}));
180+ }
181+ {
182+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
183+ asc.set ([](std::shared_ptr<rclcpp::SerializedMessage>) {});
184+ EXPECT_TRUE (asc.is_serialized_message_callback ());
185+ EXPECT_NO_THROW (
186+ asc.dispatch (
187+ std::make_shared<rclcpp::SerializedMessage>(),
188+ rclcpp::MessageInfo{}));
189+ }
190+ {
191+ rclcpp::AnySubscriptionCallback<test_msgs::msg::Empty> asc;
192+ asc.set ([](std::shared_ptr<rclcpp::SerializedMessage>, const rclcpp::MessageInfo &) {});
193+ EXPECT_TRUE (asc.is_serialized_message_callback ());
194+ EXPECT_NO_THROW (
195+ asc.dispatch (
196+ std::make_shared<rclcpp::SerializedMessage>(),
197+ rclcpp::MessageInfo{}));
198+ }
199+ }
200+
96201TEST_F (TestAnySubscriptionCallback, unset_dispatch_throw) {
97202 EXPECT_THROW (
98203 any_subscription_callback_.dispatch (msg_shared_ptr_, message_info_),
0 commit comments