Mercurial > irccd
annotate tests/cmd-plugin-list/main.cpp @ 317:249ccc1e4840
Tests: add test for plugin-list, #559
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 23 Oct 2016 11:20:29 +0200 |
parents | |
children | a6c3d73d9641 |
rev | line source |
---|---|
317
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test plugin-list remote command |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <cmd-plugin-list.hpp> |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <command-tester.hpp> |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <server-tester.hpp> |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <service-plugin.hpp> |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <plugin.hpp> |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 using namespace irccd; |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 using namespace irccd::command; |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 namespace { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 class PluginListCommandTest : public CommandTester { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 public: |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 PluginListCommandTest() |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 : CommandTester(std::make_unique<PluginListCommand>()) |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 m_irccd.plugins().add(std::make_unique<Plugin>("t1", "")); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 m_irccd.plugins().add(std::make_unique<Plugin>("t2", "")); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 } |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 }; |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 TEST_F(PluginListCommandTest, basic) |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 try { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 auto response = nlohmann::json(); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 m_irccdctl.client().onMessage.connect([&] (auto message) { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 response = message; |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 }); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 m_irccdctl.client().request({{ "command", "plugin-list" }}); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 poll([&] () { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 return response.is_object(); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 }); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 ASSERT_TRUE(response.is_object()); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 ASSERT_EQ("t1", response["list"][0]); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 ASSERT_EQ("t2", response["list"][1]); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 } catch (const std::exception &ex) { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 FAIL() << ex.what(); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 } |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 } |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 } // !namespace |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 int main(int argc, char **argv) |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 { |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 testing::InitGoogleTest(&argc, argv); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 return RUN_ALL_TESTS(); |
249ccc1e4840
Tests: add test for plugin-list, #559
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 } |