blob: 4fa87ab0e408d5f3d96fe912fa00de39c1281a1a [file] [log] [blame]
William A. Kennington IIIdcc08b62018-07-17 14:40:14 -07001#include <gmock/gmock.h>
2#include <gtest/gtest.h>
3#include <sdeventplus/source.hpp>
4#include <sdeventplus/test/sdevent.hpp>
5
6namespace sdeventplus
7{
8namespace
9{
10
11using testing::Return;
12
13class SourceTest : public testing::Test
14{
15 protected:
16 testing::StrictMock<SdEventMock> mock;
17 sd_event_source *const expected_source =
18 reinterpret_cast<sd_event_source *>(1234);
19};
20
21TEST_F(SourceTest, NewSourceRef)
22{
23 EXPECT_CALL(mock, sd_event_source_ref(expected_source))
24 .WillOnce(Return(expected_source));
25 Source source(expected_source, &mock);
26
27 EXPECT_CALL(mock, sd_event_source_unref(expected_source))
28 .WillOnce(Return(nullptr));
29}
30
31TEST_F(SourceTest, NewSourceNoRef)
32{
33 Source source(expected_source, std::false_type(), &mock);
34
35 EXPECT_CALL(mock, sd_event_source_unref(expected_source))
36 .WillOnce(Return(nullptr));
37}
38
39} // namespace
40} // namespace sdeventplus