diff --git a/CMakeLists.txt b/CMakeLists.txt index b6d7932..f7660aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,6 +106,8 @@ add_executable(AuthLoginExecutorTests ./tests/endpoint_handlers/AuthLoginExecuto ./src/helpers/helpers.cpp ./src/DAO/MySQLUserDAO.h ./src/DAO/MySQLUserDAO.cpp + ./src/DAO/MemoryAuthDAO.h + ./src/DAO/MemoryAuthDAO.cpp ./src/db/mysql_connector.h ./src/db/mysql_connector.cpp) target_link_libraries(AuthLoginExecutorTests PRIVATE Boost::boost diff --git a/tests/endpoint_handlers/AuthLoginExecutor_TEST.cpp b/tests/endpoint_handlers/AuthLoginExecutor_TEST.cpp index f459855..07090d1 100644 --- a/tests/endpoint_handlers/AuthLoginExecutor_TEST.cpp +++ b/tests/endpoint_handlers/AuthLoginExecutor_TEST.cpp @@ -9,7 +9,9 @@ #include -#include "./../../src/endpoints_handlers/AuthRegistrationExecutor.h" +#include "./../../src/endpoints_handlers/AuthLoginExecutor.h" + +#include "../../src/DAO/MemoryAuthDAO.h" #include "./../../src/DAO/MySQLUserDAO.h" #include "./../../src/db/mysql_connector.h" #include "./../../src/exceptions/session_exception.h" @@ -23,13 +25,37 @@ using namespace boost; using namespace beast; using namespace json; -using RouteAuthRegistrationExecutor = AuthRegistrationExecutor, - beast::http::string_body>; +using RouteAuthLoginExecutor = AuthLoginExecutor, + beast::http::string_body>; using Request = boost::beast::http::request>>; BOOST_AUTO_TEST_CASE(AuthRegistrationExecutor_Invalid_Login_Data) { - BOOST_CHECK(true == true); + auto& argv = boost::unit_test::framework::master_test_suite().argv; + + const std::string mysql_credentials = argv[1]; + + mysqlx::Session* mysql_session = new mysqlx::Session(mysql_credentials); + + uad::SetMySqlSession(mysql_session); + + auto user_dao = make_shared(GetMySqlSession()); + auto auth_dao = make_shared(GetMySqlSession()); + auto executor = RouteAuthLoginExecutor(GetMySqlSession(), user_dao, auth_dao); + + Request req; + + req.body() = "{ \"login\": ABS3 }"s; + req.content_length(req.body().size()); + + BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, + [](const session_exception& e) -> bool + { + return e.code == beast::http::status::internal_server_error; + }); + + mysql_session->close(); + delete mysql_session; }