28 lines
793 B
C++
28 lines
793 B
C++
#pragma once
|
|
|
|
#include <gmock/gmock.h>
|
|
|
|
#include <rublon/utils.hpp>
|
|
|
|
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
|