#include #include #include "session.h" #include "test_util.h" #include "sys_pam.h" #include "request.h" class fake_sys_pam : public pam_ifc { private: std::string user_name_; public: fake_sys_pam(std::string user_name) : user_name_(user_name) {} int get_user (pam_handle *handle, const char **out) const { *out = user_name_.c_str(); return PAM_SUCCESS; } }; int gets_user_from_pam() { //given std::string user_name("user"); pam fake_sys_pam(std::make_shared(user_name)); sessions sessions(sessions::create(fake_sys_pam)); pam_request request(0, 0, 0, 0); //when std::string actual = sessions.user_name(request); // //then check(actual == user_name, "returned wrong user name"); succeed(); } int run_tests() { test(gets_user_from_pam); succeed(); } int main(int argc, char *argv[]) { return !run_tests(); }