comparison tests/src/plugin-auth/main.cpp @ 581:a51b5dd5b761

Tests: put everything in src/
author David Demelier <markand@malikania.fr>
date Mon, 04 Dec 2017 14:12:13 +0100
parents tests/plugin-auth/main.cpp@a5e1c91abb8e
children 35832b7f4f9d
comparison
equal deleted inserted replaced
580:2e16c3623531 581:a51b5dd5b761
1 /*
2 * main.cpp -- test auth plugin
3 *
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
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
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 #define BOOST_TEST_MODULE "Auth plugin"
20 #include <boost/test/unit_test.hpp>
21
22 #include <irccd/irccd.hpp>
23 #include <irccd/server.hpp>
24
25 #include "plugin_test.hpp"
26
27 namespace irccd {
28
29 class auth_test : public plugin_test {
30 protected:
31 std::shared_ptr<journal_server> nickserv1_;
32 std::shared_ptr<journal_server> nickserv2_;
33 std::shared_ptr<journal_server> quakenet_;
34
35 public:
36 auth_test()
37 : plugin_test(PLUGIN_NAME, PLUGIN_PATH)
38 , nickserv1_(std::make_shared<journal_server>(service_, "nickserv1"))
39 , nickserv2_(std::make_shared<journal_server>(service_, "nickserv2"))
40 , quakenet_(std::make_shared<journal_server>(service_, "quakenet"))
41 {
42 plugin_->set_config({
43 { "nickserv1.type", "nickserv" },
44 { "nickserv1.password", "plopation" },
45 { "nickserv2.type", "nickserv" },
46 { "nickserv2.password", "something" },
47 { "nickserv2.username", "jean" },
48 { "quakenet.type", "quakenet" },
49 { "quakenet.password", "hello" },
50 { "quakenet.username", "mario" }
51 });
52 plugin_->on_load(irccd_);
53 }
54 };
55
56 BOOST_FIXTURE_TEST_SUITE(auth_test_suite, auth_test)
57
58 BOOST_AUTO_TEST_CASE(nickserv1)
59 {
60 plugin_->on_connect(irccd_, {nickserv1_});
61
62 auto cmd = nickserv1_->cqueue().front();
63
64 BOOST_REQUIRE_EQUAL(cmd["command"].get<std::string>(), "message");
65 BOOST_REQUIRE_EQUAL(cmd["target"].get<std::string>(), "NickServ");
66 BOOST_REQUIRE_EQUAL(cmd["message"].get<std::string>(), "identify plopation");
67 }
68
69 BOOST_AUTO_TEST_CASE(nickserv2)
70 {
71 plugin_->on_connect(irccd_, {nickserv2_});
72
73 auto cmd = nickserv2_->cqueue().front();
74
75 BOOST_REQUIRE_EQUAL(cmd["command"].get<std::string>(), "message");
76 BOOST_REQUIRE_EQUAL(cmd["target"].get<std::string>(), "NickServ");
77 BOOST_REQUIRE_EQUAL(cmd["message"].get<std::string>(), "identify jean something");
78 }
79
80 BOOST_AUTO_TEST_CASE(quakenet)
81 {
82 plugin_->on_connect(irccd_, {quakenet_});
83
84 auto cmd = quakenet_->cqueue().front();
85
86 BOOST_REQUIRE_EQUAL(cmd["command"].get<std::string>(), "message");
87 BOOST_REQUIRE_EQUAL(cmd["target"].get<std::string>(), "Q@CServe.quakenet.org");
88 BOOST_REQUIRE_EQUAL(cmd["message"].get<std::string>(), "AUTH mario hello");
89 }
90
91 BOOST_AUTO_TEST_SUITE_END()
92
93 } // !irccd