rublon-ssh/PAM/ssh/tests/pam_info_mock.hpp
2023-10-02 16:34:02 +02:00

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