16 #include <gtest/gtest.h> 17 #include <gmock/gmock.h> 26 using ::testing::InSequence;
27 using ::testing::SetArgReferee;
28 using ::testing::DoAll;
29 using ::testing::Return;
30 using ::testing::Invoke;
48 std::shared_ptr<ParameterReaderMock> param_reader_ = std::make_shared<ParameterReaderMock>();
53 double expected_param_value = 42.0;
56 InSequence read_param_seq;
59 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
62 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
66 DoAll(SetArgReferee<1>(expected_param_value), Return(AwsError::AWS_ERR_OK))
80 EXPECT_EQ(expected_param_value, param);
85 std::string expected_param_value =
"MTc4MGNjOTc3ZTA1OTY";
88 InSequence read_param_seq;
91 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
94 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
98 DoAll(SetArgReferee<1>(expected_param_value), Return(AwsError::AWS_ERR_OK))
102 std::string
param =
"";
103 EXPECT_EQ(AwsError::AWS_ERR_FAILURE,
ReadLogGroup(param_reader_, param));
107 EXPECT_EQ(AwsError::AWS_ERR_NOT_FOUND,
ReadLogGroup(param_reader_, param));
111 EXPECT_EQ(AwsError::AWS_ERR_OK,
ReadLogGroup(param_reader_, param));
112 EXPECT_STREQ(expected_param_value.c_str(), param.c_str());
117 std::string expected_param_value =
"MGQyNTU3N2I3NzU1ZGIyNWQzMTZhYmVh";
120 InSequence read_param_seq;
123 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
126 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
130 DoAll(SetArgReferee<1>(expected_param_value), Return(AwsError::AWS_ERR_OK))
134 std::string
param =
"";
135 EXPECT_EQ(AwsError::AWS_ERR_FAILURE,
ReadLogStream(param_reader_, param));
139 EXPECT_EQ(AwsError::AWS_ERR_NOT_FOUND,
ReadLogStream(param_reader_, param));
143 EXPECT_EQ(AwsError::AWS_ERR_OK,
ReadLogStream(param_reader_, param));
144 EXPECT_STREQ(expected_param_value.c_str(), param.c_str());
152 InSequence read_param_seq;
155 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
158 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
162 DoAll(SetArgReferee<1>(expected_param_value), Return(AwsError::AWS_ERR_OK))
176 EXPECT_EQ(expected_param_value, param);
182 InSequence read_param_seq;
185 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
188 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
192 DoAll(SetArgReferee<1>(
"DEBUG"), Return(AwsError::AWS_ERR_OK))
197 DoAll(SetArgReferee<1>(
"INFO"), Return(AwsError::AWS_ERR_OK))
202 DoAll(SetArgReferee<1>(
"WARN"), Return(AwsError::AWS_ERR_OK))
207 DoAll(SetArgReferee<1>(
"ERROR"), Return(AwsError::AWS_ERR_OK))
212 DoAll(SetArgReferee<1>(
"FATAL"), Return(AwsError::AWS_ERR_OK))
217 DoAll(SetArgReferee<1>(
"xNDlhZmJmNGM"), Return(AwsError::AWS_ERR_OK))
221 int8_t
param = rosgraph_msgs::Log::FATAL + 1 ;
225 param = rosgraph_msgs::Log::FATAL + 1 ;
229 param = rosgraph_msgs::Log::FATAL + 1 ;
231 EXPECT_EQ(rosgraph_msgs::Log::DEBUG, param);
233 param = rosgraph_msgs::Log::FATAL + 1 ;
235 EXPECT_EQ(rosgraph_msgs::Log::INFO, param);
237 param = rosgraph_msgs::Log::FATAL + 1 ;
239 EXPECT_EQ(rosgraph_msgs::Log::WARN, param);
241 param = rosgraph_msgs::Log::FATAL + 1 ;
243 EXPECT_EQ(rosgraph_msgs::Log::ERROR, param);
245 param = rosgraph_msgs::Log::FATAL + 1 ;
247 EXPECT_EQ(rosgraph_msgs::Log::FATAL, param);
249 param = rosgraph_msgs::Log::FATAL + 1 ;
257 InSequence read_param_seq;
260 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
263 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
266 .WillOnce(DoAll(SetArgReferee<1>(
true), Return(AwsError::AWS_ERR_OK)));
269 .WillOnce(DoAll(SetArgReferee<1>(
false), Return(AwsError::AWS_ERR_OK)));
282 EXPECT_EQ(
true, param);
286 EXPECT_EQ(
false, param);
292 out.emplace_back(
"String1");
293 return AwsError::AWS_ERR_OK;
300 InSequence read_param_seq;
303 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
306 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
312 std::unordered_set<std::string>
param;
314 EXPECT_EQ(0, param.size());
317 EXPECT_EQ(0, param.size());
320 EXPECT_EQ(1, param.count(
"String1"));
331 InSequence read_param_seq;
334 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
338 DoAll(SetArgReferee<1>(
true), Return(AwsError::AWS_ERR_OK))
342 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
346 ASSERT_TRUE(options_.delete_stale_data);
349 ASSERT_FALSE(options_.delete_stale_data);
352 ASSERT_TRUE(options_.delete_stale_data);
355 ASSERT_FALSE(options_.delete_stale_data);
368 InSequence read_param_seq;
372 DoAll(SetArgReferee<1>(
true), Return(AwsError::AWS_ERR_OK))
376 .WillOnce(Return(AwsError::AWS_ERR_FAILURE));
380 DoAll(SetArgReferee<1>(
true), Return(AwsError::AWS_ERR_OK))
384 .WillOnce(Return(AwsError::AWS_ERR_NOT_FOUND));
388 ASSERT_FALSE(options_.delete_stale_data);
391 ASSERT_TRUE(options_.delete_stale_data);
394 ASSERT_FALSE(options_.delete_stale_data);
397 ASSERT_TRUE(options_.delete_stale_data);
400 ASSERT_FALSE(options_.delete_stale_data);
403 int main(
int argc,
char ** argv)
405 testing::InitGoogleTest(&argc, argv);
406 return RUN_ALL_TESTS();
Aws::AwsError ReadIgnoreNodesSet(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, std::unordered_set< std::string > &ignore_nodes)
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val)
TEST_F(LogNodeParamHelperFixture, TestReadPublishFrequency)
Aws::AwsError ReadSubscribeToRosout(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, bool &subscribe_to_rosout)
Aws::AwsError ReadMinLogVerbosity(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, int8_t &min_log_verbosity)
Aws::AwsError ReadPublishFrequency(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, double &publish_frequency)
constexpr char kNodeParamMinLogVerbosityKey[]
constexpr char kNodeParamPublishFrequencyKey[]
constexpr int8_t kNodeMinLogVerbosityDefaultValue
AwsError MockReadParamAddStringToList(const ParameterPath ¶m_path, std::vector< std::string > &out)
constexpr char kNodeParamSubscribeToRosoutKey[]
static const FileManagerStrategyOptions kDefaultFileManagerStrategyOptions
int main(int argc, char **argv)
Aws::AwsError ReadLogStream(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, std::string &log_stream)
constexpr bool kNodeSubscribeToRosoutDefaultValue
Aws::AwsError ReadPublishTopicNames(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, bool &publish_topic_names)
constexpr bool kNodePublishTopicNamesDefaultValue
constexpr double kNodePublishFrequencyDefaultValue
Aws::AwsError ReadLogGroup(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, std::string &log_group)
constexpr char kNodeParamLogGroupNameKey[]
constexpr char kNodeParamDeleteStaleData[]
constexpr char kNodeParamPublishTopicNamesKey[]
constexpr char kNodeLogStreamNameDefaultValue[]
constexpr char kNodeParamIgnoreNodesKey[]
void ReadOption(const std::shared_ptr< Aws::Client::ParameterReaderInterface > ¶meter_reader, const std::string &option_key, const std::string &default_value, std::string &option_value)
constexpr char kNodeParamLogStreamNameKey[]
constexpr char kNodeLogGroupNameDefaultValue[]