rublon-ssh/PAM/ssh/tests/pam_info_mock.hpp
rublon-bwi 51b14c57d2
Bwi/memory management (#2)
Improve memory management
2023-09-21 16:52:20 +02:00

28 lines
865 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::optional< std::result_of_t< Fun(char *) > > {
const auto & responseBuffer = scan_mock(fmt);
return responseBuffer.empty() ? std::nullopt : std::optional{f(responseBuffer.c_str())};
}
template < typename... Ti >
void print(const char * fmt, Ti...) const noexcept {
print_mock(fmt);
}
};
} // namespace mocks