diff options
| author | William A. Kennington III <wak@google.com> | 2018-07-17 14:40:14 -0700 |
|---|---|---|
| committer | William A. Kennington III <wak@google.com> | 2018-07-17 14:40:14 -0700 |
| commit | 715c72f8b9c45edc27fa2a4b0f3d5f2b0e0eefec (patch) | |
| tree | 37e97535c20ad6c0d679bf8add20e93ee7976d80 /test/source/base.cpp | |
| parent | d9fd9815705be7501600fff2b14ba9a282a75ff2 (diff) | |
| download | sdeventplus-715c72f8b9c45edc27fa2a4b0f3d5f2b0e0eefec.tar.gz sdeventplus-715c72f8b9c45edc27fa2a4b0f3d5f2b0e0eefec.zip | |
source/base: Take an event directly instead of sdevent
Also expose a mechanism for retrieving our internal event.
Diffstat (limited to 'test/source/base.cpp')
| -rw-r--r-- | test/source/base.cpp | 59 |
1 files changed, 46 insertions, 13 deletions
diff --git a/test/source/base.cpp b/test/source/base.cpp index 13c534a..3b6a63f 100644 --- a/test/source/base.cpp +++ b/test/source/base.cpp @@ -1,12 +1,15 @@ #include <cerrno> #include <gmock/gmock.h> #include <gtest/gtest.h> +#include <memory> +#include <sdeventplus/event.hpp> #include <sdeventplus/exception.hpp> #include <sdeventplus/internal/sdevent.hpp> #include <sdeventplus/source/base.hpp> #include <sdeventplus/test/sdevent.hpp> #include <string> #include <system_error> +#include <systemd/sd-event.h> #include <type_traits> namespace sdeventplus @@ -24,13 +27,11 @@ using testing::SetArgPointee; class BaseImpl : public Base { public: - BaseImpl(sd_event_source* source, internal::SdEvent* sdevent) : - Base(source, sdevent) + BaseImpl(const Event& event, sd_event_source* source) : Base(event, source) { } - BaseImpl(sd_event_source* source, std::false_type, - internal::SdEvent* sdevent) : - Base(source, std::false_type(), sdevent) + BaseImpl(const Event& event, sd_event_source* source, std::false_type) : + Base(event, source, std::false_type()) { } }; @@ -39,15 +40,30 @@ class BaseTest : public testing::Test { protected: testing::StrictMock<test::SdEventMock> mock; - sd_event_source* const expected_source = - reinterpret_cast<sd_event_source*>(1234); + sd_event_source* expected_source = reinterpret_cast<sd_event_source*>(1234); + sd_event* expected_event = reinterpret_cast<sd_event*>(2345); + std::unique_ptr<Event> event; + + virtual void SetUp() + { + event = + std::make_unique<Event>(expected_event, std::false_type(), &mock); + } + virtual void TearDown() + { + EXPECT_CALL(mock, sd_event_unref(expected_event)) + .WillOnce(Return(nullptr)); + event.reset(); + } }; TEST_F(BaseTest, NewBaseRef) { + EXPECT_CALL(mock, sd_event_ref(expected_event)) + .WillOnce(Return(expected_event)); EXPECT_CALL(mock, sd_event_source_ref(expected_source)) .WillOnce(Return(expected_source)); - BaseImpl source(expected_source, &mock); + BaseImpl source(*event, expected_source); { testing::InSequence seq; @@ -57,11 +73,14 @@ TEST_F(BaseTest, NewBaseRef) EXPECT_CALL(mock, sd_event_source_unref(expected_source)) .WillOnce(Return(nullptr)); } + EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); } TEST_F(BaseTest, NewBaseNoRef) { - BaseImpl source(expected_source, std::false_type(), &mock); + EXPECT_CALL(mock, sd_event_ref(expected_event)) + .WillOnce(Return(expected_event)); + BaseImpl source(*event, expected_source, std::false_type()); { testing::InSequence seq; @@ -71,6 +90,7 @@ TEST_F(BaseTest, NewBaseNoRef) EXPECT_CALL(mock, sd_event_source_unref(expected_source)) .WillOnce(Return(nullptr)); } + EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr)); } class BaseMethodTest : public BaseTest @@ -78,13 +98,16 @@ class BaseMethodTest : public BaseTest protected: std::unique_ptr<BaseImpl> base; - void SetUp() + void SetUp() override { - base = std::make_unique<BaseImpl>(expected_source, std::false_type(), - &mock); + BaseTest::SetUp(); + EXPECT_CALL(mock, sd_event_ref(expected_event)) + .WillOnce(Return(expected_event)); + base = std::make_unique<BaseImpl>(*event, expected_source, + std::false_type()); } - void TearDown() + void TearDown() override { { testing::InSequence seq; @@ -94,9 +117,19 @@ class BaseMethodTest : public BaseTest EXPECT_CALL(mock, sd_event_source_unref(expected_source)) .WillOnce(Return(nullptr)); } + EXPECT_CALL(mock, sd_event_unref(expected_event)) + .WillOnce(Return(nullptr)); + base.reset(); + BaseTest::TearDown(); } }; +TEST_F(BaseMethodTest, GetEvent) +{ + EXPECT_NE(event.get(), &base->get_event()); + EXPECT_EQ(event->get(), base->get_event().get()); +} + TEST_F(BaseMethodTest, GetDescriptionSuccess) { const char* expected = "test_desc"; |

