Mercurial > irccd
diff tests/src/plugins/tictactoe/main.cpp @ 773:8c44bbcbbab9
Misc: style, cleanup and update
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 26 Oct 2018 13:01:00 +0200 |
parents | 791d7591eca7 |
children | f362994133ca |
line wrap: on
line diff
--- a/tests/src/plugins/tictactoe/main.cpp Wed Oct 24 13:24:03 2018 +0200 +++ b/tests/src/plugins/tictactoe/main.cpp Fri Oct 26 13:01:00 2018 +0200 @@ -33,227 +33,227 @@ class test_fixture : public js_plugin_fixture { public: - test_fixture() - : js_plugin_fixture(PLUGIN_PATH) - { - plugin_->set_formats({ - { "draw", "draw=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}" }, - { "invalid", "invalid=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}" }, - { "running", "running=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}" }, - { "turn", "turn=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}" }, - { "used", "used=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}" }, - { "win", "win=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}" } - }); - } + test_fixture() + : js_plugin_fixture(PLUGIN_PATH) + { + plugin_->set_formats({ + { "draw", "draw=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}" }, + { "invalid", "invalid=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}" }, + { "running", "running=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}" }, + { "turn", "turn=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}" }, + { "used", "used=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}" }, + { "win", "win=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}" } + }); + } - auto next_players() const -> std::pair<std::string, std::string> - { - const auto functions = server_->find("message"); + auto next_players() const -> std::pair<std::string, std::string> + { + const auto functions = server_->find("message"); - if (functions.size() == 0U) - throw std::runtime_error("no message"); + if (functions.size() == 0U) + throw std::runtime_error("no message"); - const auto cmd = functions.back(); - const auto list = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); + const auto cmd = functions.back(); + const auto list = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); - BOOST_TEST(list.size() == 5U); - BOOST_TEST(list[0] == "turn=#tictactoe"); - BOOST_TEST(list[1] == "!tictactoe"); - BOOST_TEST(list[3] == "tictactoe"); - BOOST_TEST(list[4] == "test"); + BOOST_TEST(list.size() == 5U); + BOOST_TEST(list[0] == "turn=#tictactoe"); + BOOST_TEST(list[1] == "!tictactoe"); + BOOST_TEST(list[3] == "tictactoe"); + BOOST_TEST(list[4] == "test"); - return list[2] == "a" ? std::make_pair("a", "b") : std::make_pair("b", "a"); - } + return list[2] == "a" ? std::make_pair("a", "b") : std::make_pair("b", "a"); + } - auto start() - { - plugin_->handle_command(irccd_, { server_, "a!a@localhost", "#tictactoe", "b" }); - plugin_->handle_names(irccd_, { server_, "#tictactoe", { "a", "b" }}); + auto start() + { + plugin_->handle_command(irccd_, { server_, "a!a@localhost", "#tictactoe", "b" }); + plugin_->handle_names(irccd_, { server_, "#tictactoe", { "a", "b" }}); - return next_players(); - } + return next_players(); + } - /** - * Helper to place several tokens on the board and automatically toggling - * players. - * - * This will start the game from "a" with target opponent "b". - * - */ - void run(const std::initializer_list<std::string>& points) - { - auto players = start(); + /** + * Helper to place several tokens on the board and automatically toggling + * players. + * + * This will start the game from "a" with target opponent "b". + * + */ + void run(const std::initializer_list<std::string>& points) + { + auto players = start(); - for (const auto& p : points) { - server_->clear(); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", p }); - players = next_players(); - } - } + for (const auto& p : points) { + server_->clear(); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", p }); + players = next_players(); + } + } }; BOOST_FIXTURE_TEST_SUITE(test_fixture_suite, test_fixture) BOOST_AUTO_TEST_CASE(win) { - run({ "a 1", "b1", "a 2", "b2" }); + run({ "a 1", "b1", "a 2", "b2" }); - const auto players = next_players(); + const auto players = next_players(); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 3" }); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 3" }); - const auto cmd = server_->find("message").back(); + const auto cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - const auto parts = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); + const auto parts = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); - BOOST_TEST(parts.size() == 5U); - BOOST_TEST(parts[0] == "win=#tictactoe"); - BOOST_TEST(parts[1] == "!tictactoe"); - BOOST_TEST(parts[2] == players.first); - BOOST_TEST(parts[3] == "tictactoe"); - BOOST_TEST(parts[4] == "test"); + BOOST_TEST(parts.size() == 5U); + BOOST_TEST(parts[0] == "win=#tictactoe"); + BOOST_TEST(parts[1] == "!tictactoe"); + BOOST_TEST(parts[2] == players.first); + BOOST_TEST(parts[3] == "tictactoe"); + BOOST_TEST(parts[4] == "test"); } BOOST_AUTO_TEST_CASE(draw) { - /* - * a b c - * 1 o x o - * 2 o x x - * 3 x o x - */ - run({ "b 2", "c 1", "c 3", "b 3", "c 2", "a 2", "a 3", "a 1" }); + /* + * a b c + * 1 o x o + * 2 o x x + * 3 x o x + */ + run({ "b 2", "c 1", "c 3", "b 3", "c 2", "a 2", "a 3", "a 1" }); - const auto players = next_players(); + const auto players = next_players(); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "b 1" }); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "b 1" }); - const auto cmd = server_->find("message").back(); + const auto cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - const auto parts = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); + const auto parts = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); - BOOST_TEST(parts.size() == 5U); - BOOST_TEST(parts[0] == "draw=#tictactoe"); - BOOST_TEST(parts[1] == "!tictactoe"); - BOOST_TEST(parts[2] == players.first); - BOOST_TEST(parts[3] == "tictactoe"); - BOOST_TEST(parts[4] == "test"); + BOOST_TEST(parts.size() == 5U); + BOOST_TEST(parts[0] == "draw=#tictactoe"); + BOOST_TEST(parts[1] == "!tictactoe"); + BOOST_TEST(parts[2] == players.first); + BOOST_TEST(parts[3] == "tictactoe"); + BOOST_TEST(parts[4] == "test"); } BOOST_AUTO_TEST_CASE(used) { - auto players = start(); + auto players = start(); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); - plugin_->handle_message(irccd_, { server_, players.second, "#tictactoe", "a 1" }); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); + plugin_->handle_message(irccd_, { server_, players.second, "#tictactoe", "a 1" }); - const auto cmd = server_->find("message").back(); + const auto cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - const auto parts = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); + const auto parts = string_util::split(std::any_cast<std::string>(cmd[1]), ":"); - BOOST_TEST(parts[0] == "used=#tictactoe"); - BOOST_TEST(parts[1] == "!tictactoe"); - BOOST_TEST(parts[2] == players.second); - BOOST_TEST(parts[3] == players.second); - BOOST_TEST(parts[4] == "tictactoe"); - BOOST_TEST(parts[5] == "test"); + BOOST_TEST(parts[0] == "used=#tictactoe"); + BOOST_TEST(parts[1] == "!tictactoe"); + BOOST_TEST(parts[2] == players.second); + BOOST_TEST(parts[3] == players.second); + BOOST_TEST(parts[4] == "tictactoe"); + BOOST_TEST(parts[5] == "test"); } BOOST_AUTO_TEST_CASE(invalid) { - // empty name (no names) - plugin_->handle_command(irccd_, { server_, "jean", "#tictactoe", "" }); + // empty name (no names) + plugin_->handle_command(irccd_, { server_, "jean", "#tictactoe", "" }); - auto cmd = server_->find("message").back(); + auto cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:jean:jean:tictactoe:test"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:jean:jean:tictactoe:test"); - // bot name (no names) - plugin_->handle_command(irccd_, { server_, "jean", "#tictactoe", "irccd" }); - cmd = server_->find("message").back(); + // bot name (no names) + plugin_->handle_command(irccd_, { server_, "jean", "#tictactoe", "irccd" }); + cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:jean:jean:tictactoe:test"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:jean:jean:tictactoe:test"); - // target is origin (no names) - plugin_->handle_command(irccd_, { server_, server_->get_nickname(), "#tictactoe", server_->get_nickname() }); - cmd = server_->find("message").back(); + // target is origin (no names) + plugin_->handle_command(irccd_, { server_, server_->get_nickname(), "#tictactoe", server_->get_nickname() }); + cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:irccd:irccd:tictactoe:test"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:irccd:irccd:tictactoe:test"); - // not existing (names) - plugin_->handle_command(irccd_, { server_, server_->get_nickname(), "#tictactoe", server_->get_nickname() }); - plugin_->handle_names(irccd_, { server_, "#tictactoe", { "a", "b", "c" }}); - cmd = server_->find("message").back(); + // not existing (names) + plugin_->handle_command(irccd_, { server_, server_->get_nickname(), "#tictactoe", server_->get_nickname() }); + plugin_->handle_names(irccd_, { server_, "#tictactoe", { "a", "b", "c" }}); + cmd = server_->find("message").back(); - BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); - BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:irccd:irccd:tictactoe:test"); + BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#tictactoe"); + BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "invalid=#tictactoe:!tictactoe:irccd:irccd:tictactoe:test"); } BOOST_AUTO_TEST_CASE(random) { - /* - * Ensure that the first player is not always the originator, start the game - * for at most 1'000'000 times to avoid forever loop. - */ - unsigned count = 0; - bool a = false; - bool b = false; + /* + * Ensure that the first player is not always the originator, start the game + * for at most 1'000'000 times to avoid forever loop. + */ + unsigned count = 0; + bool a = false; + bool b = false; - // Last player turn is the winner. - while (!a && !b && count++ < 1000000U) { - run({ "a 1", "b 1", "a 2", "b 2" }); + // Last player turn is the winner. + while (!a && !b && count++ < 1000000U) { + run({ "a 1", "b 1", "a 2", "b 2" }); - const auto players = next_players(); + const auto players = next_players(); - if (players.first == "a") - a = true; - else - b = true; + if (players.first == "a") + a = true; + else + b = true; - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 3" }); - } + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 3" }); + } } BOOST_AUTO_TEST_CASE(disconnect) { - const auto players = start(); + const auto players = start(); - plugin_->handle_disconnect(irccd_, { server_ }); - server_->clear(); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); + plugin_->handle_disconnect(irccd_, { server_ }); + server_->clear(); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); - BOOST_TEST(server_->empty()); + BOOST_TEST(server_->empty()); } BOOST_AUTO_TEST_CASE(kick) { - const auto players = start(); + const auto players = start(); - server_->clear(); - plugin_->handle_kick(irccd_, { server_, "kefka", "#tictactoe", players.first, "" }); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); + server_->clear(); + plugin_->handle_kick(irccd_, { server_, "kefka", "#tictactoe", players.first, "" }); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); - BOOST_TEST(server_->empty()); + BOOST_TEST(server_->empty()); } BOOST_AUTO_TEST_CASE(part) { - const auto players = start(); + const auto players = start(); - server_->clear(); - plugin_->handle_part(irccd_, { server_, players.first, "#tictactoe", "" }); - plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); + server_->clear(); + plugin_->handle_part(irccd_, { server_, players.first, "#tictactoe", "" }); + plugin_->handle_message(irccd_, { server_, players.first, "#tictactoe", "a 1" }); - BOOST_TEST(server_->empty()); + BOOST_TEST(server_->empty()); } BOOST_AUTO_TEST_SUITE_END()