xref: /openbmc/sdbusplus/test/message/flat_map_test.cpp (revision d0ac4bf1640a9023076501ed45621069d7f999fb)
1*d0ac4bf1SPatrick Williams #include <systemd/sd-bus-protocol.h>
2*d0ac4bf1SPatrick Williams 
3*d0ac4bf1SPatrick Williams #include <sdbusplus/message.hpp>
4*d0ac4bf1SPatrick Williams #include <sdbusplus/test/sdbus_mock.hpp>
5*d0ac4bf1SPatrick Williams 
6*d0ac4bf1SPatrick Williams #include <flat_map>
7*d0ac4bf1SPatrick Williams #include <string>
8*d0ac4bf1SPatrick Williams 
9*d0ac4bf1SPatrick Williams #include <gmock/gmock.h>
10*d0ac4bf1SPatrick Williams #include <gtest/gtest.h>
11*d0ac4bf1SPatrick Williams 
12*d0ac4bf1SPatrick Williams namespace
13*d0ac4bf1SPatrick Williams {
14*d0ac4bf1SPatrick Williams 
15*d0ac4bf1SPatrick Williams using testing::DoAll;
16*d0ac4bf1SPatrick Williams using testing::Return;
17*d0ac4bf1SPatrick Williams using testing::StrEq;
18*d0ac4bf1SPatrick Williams 
ACTION_TEMPLATE(SetReadValue,HAS_1_TEMPLATE_PARAMS (typename,T),AND_1_VALUE_PARAMS (value))19*d0ac4bf1SPatrick Williams ACTION_TEMPLATE(SetReadValue, HAS_1_TEMPLATE_PARAMS(typename, T),
20*d0ac4bf1SPatrick Williams                 AND_1_VALUE_PARAMS(value))
21*d0ac4bf1SPatrick Williams {
22*d0ac4bf1SPatrick Williams     *static_cast<T*>(arg2) = value;
23*d0ac4bf1SPatrick Williams }
24*d0ac4bf1SPatrick Williams 
25*d0ac4bf1SPatrick Williams class FlatMapTest : public testing::Test
26*d0ac4bf1SPatrick Williams {
27*d0ac4bf1SPatrick Williams   protected:
28*d0ac4bf1SPatrick Williams     testing::StrictMock<sdbusplus::SdBusMock> mock;
29*d0ac4bf1SPatrick Williams 
SetUp()30*d0ac4bf1SPatrick Williams     void SetUp() override
31*d0ac4bf1SPatrick Williams     {
32*d0ac4bf1SPatrick Williams         EXPECT_CALL(mock, sd_bus_message_new_method_call(testing::_, testing::_,
33*d0ac4bf1SPatrick Williams                                                          nullptr, nullptr,
34*d0ac4bf1SPatrick Williams                                                          nullptr, nullptr))
35*d0ac4bf1SPatrick Williams             .WillRepeatedly(Return(0));
36*d0ac4bf1SPatrick Williams     }
37*d0ac4bf1SPatrick Williams 
new_message()38*d0ac4bf1SPatrick Williams     sdbusplus::message_t new_message()
39*d0ac4bf1SPatrick Williams     {
40*d0ac4bf1SPatrick Williams         return sdbusplus::get_mocked_new(&mock).new_method_call(
41*d0ac4bf1SPatrick Williams             nullptr, nullptr, nullptr, nullptr);
42*d0ac4bf1SPatrick Williams     }
43*d0ac4bf1SPatrick Williams };
44*d0ac4bf1SPatrick Williams 
45*d0ac4bf1SPatrick Williams // Test that flat_map compiles with the read/append functions
TEST_F(FlatMapTest,CompileTest)46*d0ac4bf1SPatrick Williams TEST_F(FlatMapTest, CompileTest)
47*d0ac4bf1SPatrick Williams {
48*d0ac4bf1SPatrick Williams     std::flat_map<std::string, int> fmap{{"key1", 100}, {"key2", 200}};
49*d0ac4bf1SPatrick Williams     // This test just verifies that the code compiles
50*d0ac4bf1SPatrick Williams     SUCCEED();
51*d0ac4bf1SPatrick Williams }
52*d0ac4bf1SPatrick Williams 
53*d0ac4bf1SPatrick Williams } // namespace
54