utils_test.cpp
Go to the documentation of this file.
1 #include <gtest/gtest.h>
2 
4 
5 TEST(SplitDefinitionsTest, EmptyMessageDefinition) {
6  const std::string messageDef = "";
7  std::istringstream stream(messageDef);
8  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
9  ASSERT_EQ(definitions.size(), 1u);
10  EXPECT_EQ(definitions[0], "");
11 }
12 
13 TEST(SplitDefinitionsTest, ServiceDefinition) {
14  const std::string messageDef =
15  "bool data\n"
16  "---\n"
17  "bool success ";
18  std::istringstream stream(messageDef);
19  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
20  ASSERT_EQ(definitions.size(), 2u);
21  EXPECT_EQ(definitions[0], "bool data");
22  EXPECT_EQ(definitions[1], "bool success");
23 }
24 
25 TEST(SplitDefinitionsTest, ServiceDefinitionEmptyRequest) {
26  const std::string messageDef =
27  "---\n"
28  "bool success ";
29  std::istringstream stream(messageDef);
30  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
31  ASSERT_EQ(definitions.size(), 2u);
32  EXPECT_EQ(definitions[0], "");
33  EXPECT_EQ(definitions[1], "bool success");
34 }
35 
36 TEST(SplitDefinitionsTest, ServiceDefinitionEmptyResponse) {
37  const std::string messageDef =
38  "bool data\n"
39  "---";
40  std::istringstream stream(messageDef);
41  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
42  ASSERT_EQ(definitions.size(), 2u);
43  EXPECT_EQ(definitions[0], "bool data");
44  EXPECT_EQ(definitions[1], "");
45 }
46 
47 TEST(SplitDefinitionsTest, ActionDefinition) {
48  const std::string messageDef =
49  "bool data\n"
50  "---\n"
51  "bool success\n"
52  "---\n"
53  "bool feedback";
54  std::istringstream stream(messageDef);
55  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
56  ASSERT_EQ(definitions.size(), 3u);
57  EXPECT_EQ(definitions[0], "bool data");
58  EXPECT_EQ(definitions[1], "bool success");
59  EXPECT_EQ(definitions[2], "bool feedback");
60 }
61 
62 TEST(SplitDefinitionsTest, ActionDefinitionNoGoal) {
63  const std::string messageDef =
64  "bool data\n"
65  "---\n"
66  "---\n"
67  "bool feedback";
68  std::istringstream stream(messageDef);
69  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
70  ASSERT_EQ(definitions.size(), 3u);
71  EXPECT_EQ(definitions[0], "bool data");
72  EXPECT_EQ(definitions[1], "");
73  EXPECT_EQ(definitions[2], "bool feedback");
74 }
75 
76 TEST(SplitDefinitionsTest, HandleCarriageReturn) {
77  const std::string messageDef =
78  "---\r\n"
79  "string device_name\n";
80  std::istringstream stream(messageDef);
81  const auto definitions = foxglove_bridge::splitMessageDefinitions(stream);
82  ASSERT_EQ(definitions.size(), 2u);
83  EXPECT_EQ(definitions[0], "");
84  EXPECT_EQ(definitions[1], "string device_name");
85 }
86 
87 int main(int argc, char** argv) {
88  testing::InitGoogleTest(&argc, argv);
89  return RUN_ALL_TESTS();
90 }
utils.hpp
main
int main(int argc, char **argv)
Definition: utils_test.cpp:87
TEST
TEST(SplitDefinitionsTest, EmptyMessageDefinition)
Definition: utils_test.cpp:5
foxglove_bridge::splitMessageDefinitions
std::vector< std::string > splitMessageDefinitions(std::istream &stream)
Definition: utils.hpp:27


foxglove_bridge
Author(s): Foxglove
autogenerated on Wed Mar 5 2025 03:34:31