comparison tests/cmd-server-cmode/main.cpp @ 558:f1ad428208d3

Tests: convert cmd-server-*, #593
author David Demelier <markand@malikania.fr>
date Sat, 25 Nov 2017 17:00:24 +0100
parents 7e273b7f4f92
children
comparison
equal deleted inserted replaced
557:c729f06c6f27 558:f1ad428208d3
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */ 17 */
18 18
19 #include <command.hpp> 19 #define BOOST_TEST_MODULE "server-cmode"
20 #include <command-tester.hpp> 20 #include <boost/test/unit_test.hpp>
21 #include <server-tester.hpp>
22 21
23 using namespace irccd; 22 #include <irccd/server_service.hpp>
23
24 #include <journal_server.hpp>
25 #include <command_test.hpp>
26
27 namespace irccd {
24 28
25 namespace { 29 namespace {
26 30
27 std::string cmd_channel; 31 class server_cmode_test : public command_test<server_channel_mode_command> {
28 std::string cmd_mode; 32 protected:
33 std::shared_ptr<journal_server> server_{new journal_server(service_, "test")};
34
35 server_cmode_test()
36 {
37 daemon_->servers().add(server_);
38 }
39 };
29 40
30 } // !namespace 41 } // !namespace
31 42
32 class ServerChannelModeTest : public ServerTester { 43 BOOST_FIXTURE_TEST_SUITE(server_cmode_test_suite, server_cmode_test)
33 public:
34 void cmode(std::string channel, std::string mode)
35 {
36 ::cmd_channel = channel;
37 ::cmd_mode = mode;
38 }
39 };
40 44
41 class ServerChannelModeCommandTest : public CommandTester { 45 BOOST_AUTO_TEST_CASE(basic)
42 public: 46 {
43 ServerChannelModeCommandTest() 47 ctl_->send({
44 : CommandTester(std::make_unique<server_channel_mode_command>(), 48 { "command", "server-cmode" },
45 std::make_unique<ServerChannelModeTest>()) 49 { "server", "test" },
46 { 50 { "channel", "#staff" },
47 m_irccdctl.client().request({ 51 { "mode", "+c" }
48 { "command", "server-cmode" }, 52 });
49 { "server", "test" },
50 { "channel", "#staff" },
51 { "mode", "+c" }
52 });
53 }
54 };
55 53
56 TEST_F(ServerChannelModeCommandTest, basic) 54 wait_for([this] () {
57 { 55 return !server_->cqueue().empty();
58 try { 56 });
59 poll([&] () {
60 return !cmd_channel.empty() && !cmd_mode.empty();
61 });
62 57
63 ASSERT_EQ("#staff", cmd_channel); 58 auto cmd = server_->cqueue().back();
64 ASSERT_EQ("+c", cmd_mode); 59
65 } catch (const std::exception &ex) { 60 BOOST_TEST(cmd["command"].get<std::string>() == "cmode");
66 FAIL() << ex.what(); 61 BOOST_TEST(cmd["channel"].get<std::string>() == "#staff");
67 } 62 BOOST_TEST(cmd["mode"].get<std::string>() == "+c");
68 } 63 }
69 64
70 int main(int argc, char **argv) 65 BOOST_AUTO_TEST_SUITE_END()
71 {
72 testing::InitGoogleTest(&argc, argv);
73 66
74 return RUN_ALL_TESTS(); 67 } // !irccd
75 }