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