diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ecfac6..3cd28f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,7 @@ add_executable(AuthRegistrationExecutorTests ./tests/endpoint_handlers/AuthRegis ./src/db/mysql_connector.h ./src/db/mysql_connector.cpp tests/fixtures/AuthFixture.h + tests/fixtures/AuthFixture.cpp ./tests/fixtures/fixture_session_initialization_helper.h ./tests/fixtures/fixture_session_initialization_helper.cpp) target_link_libraries(AuthRegistrationExecutorTests PRIVATE Boost::boost diff --git a/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp b/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp index 379e69b..c0e5a73 100644 --- a/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp +++ b/tests/endpoint_handlers/AuthRegistrationExecutor_TEST.cpp @@ -27,8 +27,10 @@ using RouteAuthRegistrationExecutor = AuthRegistrationExecutor>>; -BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Failed_Parse_Payload, AuthFixture) +BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Failed_Parse_Payload, AuthFixture) { + RouteAuthRegistrationExecutor executor(GetMySqlSession(), user_dao); + req.body() = "{ \"login\": ABS3 }"s; BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, [](const session_exception& e) -> bool @@ -37,8 +39,10 @@ BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Failed_Parse_Payload, AuthFixtu }); } -BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Invalid_Login_Data, AuthFixture) +BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Invalid_Login_Data, AuthFixture) { + RouteAuthRegistrationExecutor executor(GetMySqlSession(), user_dao); + value req_body; req_body.emplace_object(); @@ -54,8 +58,10 @@ BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Invalid_Login_Data, AuthFixture }); } -BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login, AuthFixture) +BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login, AuthFixture) { + RouteAuthRegistrationExecutor executor(GetMySqlSession(), user_dao); + value req_body; req_body.emplace_object(); @@ -70,8 +76,10 @@ BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login, AuthFixt BOOST_CHECK_EQUAL(response.result(), http::status::created); } -BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Unsuccesfull_User_Registration, AuthFixture) +BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Unsuccesfull_User_Registration, AuthFixture) { + RouteAuthRegistrationExecutor executor(GetMySqlSession(), user_dao); + user_dao->Create( user { .login = "MyLogin123456780"s + uuid, diff --git a/tests/fixtures/AuthFixture.cpp b/tests/fixtures/AuthFixture.cpp new file mode 100644 index 0000000..df081d8 --- /dev/null +++ b/tests/fixtures/AuthFixture.cpp @@ -0,0 +1,36 @@ +#include "AuthFixture.h" + +#include +#include + +#include + +#include "./../../src/db/mysql_connector.h" + +using namespace std; + +namespace uad +{ +AuthFixture::AuthFixture() : + uuid(std::to_string(uad::Random())), + argv(boost::unit_test::framework::master_test_suite().argv), + mysql_credentials(argv[1]), + mysql_session(new mysqlx::Session(mysql_credentials)), + helper(mysql_session), + user_dao(std::make_shared(GetMySqlSession())), + auth_dao(make_shared(GetMySqlSession())) +{ + BOOST_TEST_MESSAGE("Setup RouteAuthRegistrationExecutor fixture"); +} + +AuthFixture::~AuthFixture() +{ + argv = nullptr; + mysql_session->close(); + delete mysql_session; + mysql_session = nullptr; + SetMySqlSession(nullptr); + + BOOST_TEST_MESSAGE("Teardown RouteAuthRegistrationExecutor fixture"); +} +} \ No newline at end of file diff --git a/tests/fixtures/AuthFixture.h b/tests/fixtures/AuthFixture.h index bf22ff3..5aae55c 100644 --- a/tests/fixtures/AuthFixture.h +++ b/tests/fixtures/AuthFixture.h @@ -17,30 +17,24 @@ namespace uad using Request = boost::beast::http::request>>; -template -class AuthFixture { +class AuthFixture +{ public: - const std::string uuid = std::to_string(uad::Random()); - char** argv = boost::unit_test::framework::master_test_suite().argv; + const std::string uuid; + char** argv; - const std::string mysql_credentials = argv[1]; - mysqlx::Session* mysql_session = new mysqlx::Session(mysql_credentials); + const std::string mysql_credentials; + mysqlx::Session* mysql_session; - fixture_session_initialization_helper helper = fixture_session_initialization_helper(mysql_session); + fixture_session_initialization_helper helper; - std::shared_ptr user_dao = std::make_shared(GetMySqlSession()); - std::shared_ptr auth_dao = std::make_shared(GetMySqlSession()); - Executor executor = Executor(GetMySqlSession(), user_dao); + std::shared_ptr user_dao; + std::shared_ptr auth_dao; Request req; - AuthFixture() - { - BOOST_TEST_MESSAGE("Setup fixture"); - } - ~AuthFixture() - { - BOOST_TEST_MESSAGE("Teardown fixture"); - } + AuthFixture(); + + ~AuthFixture(); }; }