From 1a52ba4c902f8f431682767ede38978f86175496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Tue, 18 Nov 2025 10:18:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D1=80=D0=B5=D1=82=D0=B8=D0=B9=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=20=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83=D1=80=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthRegistrationExecutor_TEST.cpp | 20 +++---------------- .../AuthRegistrationExecutorTestFixture.cpp | 16 ++++++++++----- .../AuthRegistrationExecutorTestFixture.h | 13 +++++++++--- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp b/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp index 3edd3d6..13c92b8 100644 --- a/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp +++ b/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp @@ -33,7 +33,7 @@ BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Failed_Parse_Payload, AuthRegis { req.body() = "{ \"login\": ABS3 }"s; - BOOST_CHECK_EXCEPTION(executor->operator()(std::move(req)), session_exception, [](const session_exception& e) -> bool + BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, [](const session_exception& e) -> bool { return e.code == beast::http::status::internal_server_error; }); @@ -50,25 +50,14 @@ BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Invalid_Login_Data, AuthRegistr req.body() = serialize(req_body); - BOOST_CHECK_EXCEPTION(executor->operator()(std::move(req)), session_exception, [](const session_exception& e) -> bool + BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, [](const session_exception& e) -> bool { return e.code == beast::http::status::unprocessable_entity; }); } -BOOST_AUTO_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login) +BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login, AuthRegistrationExecutorTestFixture) { - 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 executor = RouteAuthRegistrationExecutor(GetMySqlSession(), user_dao); - Request req; value req_body; @@ -82,9 +71,6 @@ BOOST_AUTO_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login) auto response = executor(std::move(req)); BOOST_CHECK_EQUAL(response.result(), http::status::created); - - mysql_session->close(); - delete mysql_session; } BOOST_AUTO_TEST_CASE(AuthRegistrationExecutor_Unsuccesfull_User_Login) diff --git a/tests/fixtures/AuthRegistrationExecutorTestFixture.cpp b/tests/fixtures/AuthRegistrationExecutorTestFixture.cpp index 4a85e71..ab26ad0 100644 --- a/tests/fixtures/AuthRegistrationExecutorTestFixture.cpp +++ b/tests/fixtures/AuthRegistrationExecutorTestFixture.cpp @@ -11,15 +11,19 @@ using namespace std; namespace uad { +fixture_helper::fixture_helper(mysqlx::Session* session) +{ + uad::SetMySqlSession(session); +} + AuthRegistrationExecutorTestFixture::AuthRegistrationExecutorTestFixture() : argv(boost::unit_test::framework::master_test_suite().argv), mysql_credentials(argv[1]), - mysql_session(new mysqlx::Session(mysql_credentials)) + mysql_session(new mysqlx::Session(mysql_credentials)), + helper(mysql_session), + user_dao(std::make_shared(GetMySqlSession())), + executor(RouteAuthRegistrationExecutor(GetMySqlSession(), user_dao)) { - uad::SetMySqlSession(mysql_session); - - user_dao = std::make_shared(GetMySqlSession()); - executor = std::make_unique(GetMySqlSession(), user_dao); BOOST_TEST_MESSAGE("Setup RouteAuthRegistrationExecutor fixture"); } @@ -28,6 +32,8 @@ AuthRegistrationExecutorTestFixture::~AuthRegistrationExecutorTestFixture() argv = nullptr; mysql_session->close(); delete mysql_session; + mysql_session = nullptr; + SetMySqlSession(nullptr); BOOST_TEST_MESSAGE("Teardown RouteAuthRegistrationExecutor fixture"); } diff --git a/tests/fixtures/AuthRegistrationExecutorTestFixture.h b/tests/fixtures/AuthRegistrationExecutorTestFixture.h index adfb857..b818f37 100644 --- a/tests/fixtures/AuthRegistrationExecutorTestFixture.h +++ b/tests/fixtures/AuthRegistrationExecutorTestFixture.h @@ -7,9 +7,15 @@ #include #include "./../../src/endpoints_handlers/AuthRegistrationExecutor.h" #include "./../../src/DAO/MySQLUserDAO.h" +#include "./../../src/db/mysql_connector.h" namespace uad { +struct fixture_helper +{ + explicit fixture_helper(mysqlx::Session* session); +}; + class AuthRegistrationExecutorTestFixture { public: using RouteAuthRegistrationExecutor = AuthRegistrationExecutor user_dao; - std::unique_ptr executor; + fixture_helper helper; + + std::shared_ptr user_dao; + RouteAuthRegistrationExecutor executor; Request req;