Commit da606bda authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook GitHub Bot

use only public gmock interface in transport/socket lifecycle observer

Summary: Internals are not portable between versions or across platforms.

Reviewed By: Orvid

Differential Revision: D27990286

fbshipit-source-id: b70d8d3f67a1e5262efa842f70817e3ae3972339
parent 92d8ef30
This diff is collapsed.
...@@ -32,30 +32,56 @@ namespace test { ...@@ -32,30 +32,56 @@ namespace test {
class MockAsyncSocketLifecycleObserver : public AsyncSocket::LifecycleObserver { class MockAsyncSocketLifecycleObserver : public AsyncSocket::LifecycleObserver {
public: public:
using AsyncSocket::LifecycleObserver::LifecycleObserver; using AsyncSocket::LifecycleObserver::LifecycleObserver;
GMOCK_METHOD1_(, noexcept, , observerAttach, void(AsyncTransport*)); MOCK_METHOD1(observerAttachMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , observerDetach, void(AsyncTransport*)); MOCK_METHOD1(observerDetachMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , destroy, void(AsyncTransport*)); MOCK_METHOD1(destroyMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , close, void(AsyncTransport*)); MOCK_METHOD1(closeMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , connect, void(AsyncTransport*)); MOCK_METHOD1(connectMock, void(AsyncTransport*));
GMOCK_METHOD2_(, noexcept, , evbAttach, void(AsyncTransport*, EventBase*)); MOCK_METHOD2(evbAttachMock, void(AsyncTransport*, EventBase*));
GMOCK_METHOD2_(, noexcept, , evbDetach, void(AsyncTransport*, EventBase*)); MOCK_METHOD2(evbDetachMock, void(AsyncTransport*, EventBase*));
GMOCK_METHOD2_( MOCK_METHOD2(
, byteEventMock, void(AsyncTransport*, const AsyncTransport::ByteEvent&));
noexcept, MOCK_METHOD1(byteEventsEnabledMock, void(AsyncTransport*));
, MOCK_METHOD2(
byteEvent, byteEventsUnavailableMock,
void(AsyncTransport*, const AsyncTransport::ByteEvent&));
GMOCK_METHOD1_(, noexcept, , byteEventsEnabled, void(AsyncTransport*));
GMOCK_METHOD2_(
,
noexcept,
,
byteEventsUnavailable,
void(AsyncTransport*, const AsyncSocketException&)); void(AsyncTransport*, const AsyncSocketException&));
// additional handlers specific to AsyncSocket::LifecycleObserver // additional handlers specific to AsyncSocket::LifecycleObserver
GMOCK_METHOD1_(, noexcept, , fdDetach, void(AsyncSocket*)); MOCK_METHOD1(fdDetachMock, void(AsyncSocket*));
GMOCK_METHOD2_(, noexcept, , move, void(AsyncSocket*, AsyncSocket*)); MOCK_METHOD2(moveMock, void(AsyncSocket*, AsyncSocket*));
private:
void observerAttach(AsyncTransport* trans) noexcept override {
observerAttachMock(trans);
}
void observerDetach(AsyncTransport* trans) noexcept override {
observerDetachMock(trans);
}
void destroy(AsyncTransport* trans) noexcept override { destroyMock(trans); }
void close(AsyncTransport* trans) noexcept override { closeMock(trans); }
void connect(AsyncTransport* trans) noexcept override { connectMock(trans); }
void evbAttach(AsyncTransport* trans, EventBase* eb) noexcept override {
evbAttachMock(trans, eb);
}
void evbDetach(AsyncTransport* trans, EventBase* eb) noexcept override {
evbDetachMock(trans, eb);
}
void byteEvent(
AsyncTransport* trans,
const AsyncTransport::ByteEvent& ev) noexcept override {
byteEventMock(trans, ev);
}
void byteEventsEnabled(AsyncTransport* trans) noexcept override {
byteEventsEnabledMock(trans);
}
void byteEventsUnavailable(
AsyncTransport* trans, const AsyncSocketException& ex) noexcept override {
byteEventsUnavailableMock(trans, ex);
}
void fdDetach(AsyncSocket* sock) noexcept override { fdDetachMock(sock); }
void move(AsyncSocket* olds, AsyncSocket* news) noexcept override {
moveMock(olds, news);
}
}; };
} // namespace test } // namespace test
......
...@@ -27,26 +27,48 @@ class MockAsyncTransportLifecycleObserver ...@@ -27,26 +27,48 @@ class MockAsyncTransportLifecycleObserver
: public AsyncTransport::LifecycleObserver { : public AsyncTransport::LifecycleObserver {
public: public:
using AsyncTransport::LifecycleObserver::LifecycleObserver; using AsyncTransport::LifecycleObserver::LifecycleObserver;
GMOCK_METHOD1_(, noexcept, , observerAttach, void(AsyncTransport*)); MOCK_METHOD1(observerAttachMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , observerDetach, void(AsyncTransport*)); MOCK_METHOD1(observerDetachMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , destroy, void(AsyncTransport*)); MOCK_METHOD1(destroyMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , close, void(AsyncTransport*)); MOCK_METHOD1(closeMock, void(AsyncTransport*));
GMOCK_METHOD1_(, noexcept, , connect, void(AsyncTransport*)); MOCK_METHOD1(connectMock, void(AsyncTransport*));
GMOCK_METHOD2_(, noexcept, , evbAttach, void(AsyncTransport*, EventBase*)); MOCK_METHOD2(evbAttachMock, void(AsyncTransport*, EventBase*));
GMOCK_METHOD2_(, noexcept, , evbDetach, void(AsyncTransport*, EventBase*)); MOCK_METHOD2(evbDetachMock, void(AsyncTransport*, EventBase*));
GMOCK_METHOD2_( MOCK_METHOD2(
, byteEventMock, void(AsyncTransport*, const AsyncTransport::ByteEvent&));
noexcept, MOCK_METHOD1(byteEventsEnabledMock, void(AsyncTransport*));
, MOCK_METHOD2(
byteEvent, byteEventsUnavailableMock,
void(AsyncTransport*, const AsyncTransport::ByteEvent&));
GMOCK_METHOD1_(, noexcept, , byteEventsEnabled, void(AsyncTransport*));
GMOCK_METHOD2_(
,
noexcept,
,
byteEventsUnavailable,
void(AsyncTransport*, const AsyncSocketException&)); void(AsyncTransport*, const AsyncSocketException&));
private:
void observerAttach(AsyncTransport* trans) noexcept override {
observerAttachMock(trans);
}
void observerDetach(AsyncTransport* trans) noexcept override {
observerDetachMock(trans);
}
void destroy(AsyncTransport* trans) noexcept override { destroyMock(trans); }
void close(AsyncTransport* trans) noexcept override { closeMock(trans); }
void connect(AsyncTransport* trans) noexcept override { connectMock(trans); }
void evbAttach(AsyncTransport* trans, EventBase* eb) noexcept override {
evbAttachMock(trans, eb);
}
void evbDetach(AsyncTransport* trans, EventBase* eb) noexcept override {
evbDetachMock(trans, eb);
}
void byteEvent(
AsyncTransport* trans,
const AsyncTransport::ByteEvent& ev) noexcept override {
byteEventMock(trans, ev);
}
void byteEventsEnabled(AsyncTransport* trans) noexcept override {
byteEventsEnabledMock(trans);
}
void byteEventsUnavailable(
AsyncTransport* trans, const AsyncSocketException& ex) noexcept override {
byteEventsUnavailableMock(trans, ex);
}
}; };
/** /**
...@@ -60,7 +82,7 @@ class MockAsyncTransportObserverForByteEvents ...@@ -60,7 +82,7 @@ class MockAsyncTransportObserverForByteEvents
const MockAsyncTransportObserverForByteEvents::Config& observerConfig) const MockAsyncTransportObserverForByteEvents::Config& observerConfig)
: MockAsyncTransportLifecycleObserver(observerConfig), : MockAsyncTransportLifecycleObserver(observerConfig),
transport_(transport) { transport_(transport) {
ON_CALL(*this, byteEvent(testing::_, testing::_)) ON_CALL(*this, byteEventMock(testing::_, testing::_))
.WillByDefault( .WillByDefault(
testing::Invoke([this]( testing::Invoke([this](
AsyncTransport* transport, AsyncTransport* transport,
...@@ -68,13 +90,13 @@ class MockAsyncTransportObserverForByteEvents ...@@ -68,13 +90,13 @@ class MockAsyncTransportObserverForByteEvents
CHECK_EQ(this->transport_, transport); CHECK_EQ(this->transport_, transport);
byteEvents_.emplace_back(event); byteEvents_.emplace_back(event);
})); }));
ON_CALL(*this, byteEventsEnabled(testing::_)) ON_CALL(*this, byteEventsEnabledMock(testing::_))
.WillByDefault(testing::Invoke([this](AsyncTransport* transport) { .WillByDefault(testing::Invoke([this](AsyncTransport* transport) {
CHECK_EQ(this->transport_, transport); CHECK_EQ(this->transport_, transport);
byteEventsEnabledCalled_++; byteEventsEnabledCalled_++;
})); }));
ON_CALL(*this, byteEventsUnavailable(testing::_, testing::_)) ON_CALL(*this, byteEventsUnavailableMock(testing::_, testing::_))
.WillByDefault(testing::Invoke( .WillByDefault(testing::Invoke(
[this](AsyncTransport* transport, const AsyncSocketException& ex) { [this](AsyncTransport* transport, const AsyncSocketException& ex) {
CHECK_EQ(this->transport_, transport); CHECK_EQ(this->transport_, transport);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment