#pragma once #include #include namespace mocks { class PamInfoMock { public: MOCK_METHOD(rublon::NonOwningPtr< const char >, ip, (), (const)); MOCK_METHOD(rublon::NonOwningPtr< const char >, username, (), (const)); MOCK_METHOD(std::string, scan_mock, (const char * fmt), (const)); MOCK_METHOD(void, print_mock, (const char * fmt), (const)); template < typename Fun, typename... Ti > auto scan(Fun && f, const char * fmt, Ti...) const noexcept -> std::result_of_t< Fun(char *) > { const auto & responseBuffer = scan_mock(fmt); return f(responseBuffer.c_str()); } template < typename... Ti > void print(const char * fmt, Ti...) const noexcept { print_mock(fmt); } }; } // namespace mocks