#ifdef WIN32 #include #endif #define BOOST_TEST_MODULE AuthRegistrationExecutors #include #include #include "./../../src/endpoints_handlers/AuthRegistrationExecutor.h" #include "./../../src/DAO/MySQLUserDAO.h" #include "./../../src/db/mysql_connector.h" #include "./../../src/exceptions/session_exception.h" #include "./../../src/helpers/helpers.h" #include "./../fixtures/AuthFixture.h" const std::string kUUID = std::to_string(uad::Random()); using namespace std; using namespace uad; using namespace boost; using namespace beast; using namespace json; using RouteAuthRegistrationExecutor = AuthRegistrationExecutor, beast::http::string_body>; using Request = boost::beast::http::request>>; BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Failed_Parse_Payload, AuthFixture) { req.body() = "{ \"login\": ABS3 }"s; BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, [](const session_exception& e) -> bool { return e.code == beast::http::status::bad_request; }); } BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Invalid_Login_Data, AuthFixture) { value req_body; req_body.emplace_object(); req_body.as_object().emplace("login"s, "wq"); req_body.as_object().emplace("password"s, "Qw"); req.body() = serialize(req_body); BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, [](const session_exception& e) -> bool { return e.code == beast::http::status::unprocessable_entity; }); } BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Succesfull_User_Login, AuthFixture) { value req_body; req_body.emplace_object(); req_body.as_object().emplace("login"s, "MyLogin123456780"s + kUUID); req_body.as_object().emplace("password"s, "Qwerty123456"s); req.body() = serialize(req_body); auto response = executor(std::move(req)); BOOST_CHECK_EQUAL(response.result(), http::status::created); } BOOST_FIXTURE_TEST_CASE(AuthRegistrationExecutor_Unsuccesfull_User_Login, AuthFixture) { value req_body; req_body.emplace_object(); req_body.as_object().emplace("login"s, "MyLogin123456780"s + kUUID); req_body.as_object().emplace("password"s, "Qwerty123456"s); req.body() = serialize(req_body); BOOST_CHECK_EXCEPTION(executor(std::move(req)), session_exception, [](const session_exception& e) -> bool { return e.code == beast::http::status::conflict; }); }