Mercurial > irccd
annotate tests/src/plugins/joke/main.cpp @ 741:cc01813fa027
Tests: improve file naming consistency
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 25 Jul 2018 22:02:00 +0200 |
parents | 64839725f346 |
children | 791d7591eca7 |
rev | line source |
---|---|
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test joke plugin |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
628
27587ff92a64
Misc: update copyrights
David Demelier <markand@malikania.fr>
parents:
618
diff
changeset
|
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #define BOOST_TEST_MODULE "Joke plugin" |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <boost/test/unit_test.hpp> |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <irccd/test/plugin_test.hpp> |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 namespace irccd { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
26 namespace { |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
27 |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 class joke_test : public plugin_test { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 public: |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 joke_test() |
722
3e816cebed2c
Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents:
636
diff
changeset
|
31 : plugin_test(PLUGIN_PATH) |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 plugin_->set_formats({ |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 { "error", "error=#{server}:#{channel}:#{origin}:#{nickname}" } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 }); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
722
3e816cebed2c
Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents:
636
diff
changeset
|
38 void load(plugin::map config = {}) |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 // Add file if not there. |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 if (config.count("file") == 0) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 config.emplace("file", CMAKE_CURRENT_SOURCE_DIR "/jokes.json"); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
722
3e816cebed2c
Irccd: make plugin pure abstract, closes #796 @3h
David Demelier <markand@malikania.fr>
parents:
636
diff
changeset
|
44 plugin_->set_options(config); |
636
152d20dc0e74
Irccd: rename plugin::on_ to plugin::handle_, closes #769 @10m
David Demelier <markand@malikania.fr>
parents:
628
diff
changeset
|
45 plugin_->handle_load(irccd_); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 BOOST_FIXTURE_TEST_SUITE(joke_test_suite, joke_test) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 BOOST_AUTO_TEST_CASE(simple) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 /* |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 * Jokes.json have two jokes. |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 * |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 * aaa |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 * |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 * And |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 * |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 * bbbb |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 * bbbb |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 */ |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 std::unordered_map<std::string, int> said{ |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
64 { "aaa", 0 }, |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
65 { "bbbb", 0 } |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 load(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
70 const auto call = [&] () { |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
71 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#joke", "" }); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
73 const auto cmd = server_->find("message").back(); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
74 const auto msg = std::any_cast<std::string>(cmd[1]); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 // "bbbb" is two lines. |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
77 if (msg == "bbbb") { |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
78 const auto first = server_->find("message").front(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
80 BOOST_TEST(std::any_cast<std::string>(first[0]) == "#joke"); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
81 BOOST_TEST(std::any_cast<std::string>(first[1]) == "bbbb"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 } else |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
83 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "aaa"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
85 said[msg] += 1; |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
86 server_->clear(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 BOOST_TEST(said.size() == 2U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 BOOST_TEST(said["aaa"] == 1U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 BOOST_TEST(said["bbbb"] == 1U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 BOOST_AUTO_TEST_CASE(toobig) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 // xxx and yyy are both 3-lines which we disallow. only a must be said. |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 load({ |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
101 { "file", CMAKE_CURRENT_SOURCE_DIR "/error-toobig.json" }, |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 { "max-list-lines", "2" } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 }); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 std::unordered_map<std::string, int> said{ |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 { "a", 0 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
109 const auto call = [&] () { |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
110 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#joke", "" }); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
112 const auto cmd = server_->find("message").back(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
114 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
115 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "a"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
117 said[std::any_cast<std::string>(cmd[1])] += 1; |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
118 server_->clear(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 BOOST_TEST(said.size() == 1U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 BOOST_TEST(said["a"] == 3U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 BOOST_AUTO_TEST_CASE(invalid) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 // Only a is the valid joke in this file. |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 load({ |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
133 { "file", CMAKE_CURRENT_SOURCE_DIR "/error-invalid.json" }, |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 }); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 std::unordered_map<std::string, int> said{ |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 { "a", 0 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
140 const auto call = [&] () { |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
141 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#joke", "" }); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
143 const auto cmd = server_->find("message").back(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
145 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
146 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "a"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
148 server_->clear(); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
149 said[std::any_cast<std::string>(cmd[1])] += 1; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 }; |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 call(); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 BOOST_TEST(said.size() == 1U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 BOOST_TEST(said["a"] == 3U); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 BOOST_AUTO_TEST_SUITE(errors) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 BOOST_AUTO_TEST_CASE(not_found) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 { |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 load({{"file", "doesnotexist.json"}}); |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
166 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#joke", "" }); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
168 const auto cmd = server_->find("message").back(); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
169 |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
170 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
171 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "error=test:#joke:jean!jean@localhost:jean"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 BOOST_AUTO_TEST_CASE(not_array) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 { |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
176 load({{"file", CMAKE_CURRENT_SOURCE_DIR "/error-not-array.json"}}); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
178 plugin_->handle_command(irccd_, { server_, "jean!jean@localhost", "#joke", "" }); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
180 const auto cmd = server_->find("message").back(); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
181 |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
182 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
183 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "error=test:#joke:jean!jean@localhost:jean"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 BOOST_AUTO_TEST_CASE(empty) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 { |
741
cc01813fa027
Tests: improve file naming consistency
David Demelier <markand@malikania.fr>
parents:
735
diff
changeset
|
188 load({{"file", CMAKE_CURRENT_SOURCE_DIR "/error-empty.json"}}); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 |
636
152d20dc0e74
Irccd: rename plugin::on_ to plugin::handle_, closes #769 @10m
David Demelier <markand@malikania.fr>
parents:
628
diff
changeset
|
190 plugin_->handle_command(irccd_, {server_, "jean!jean@localhost", "#joke", ""}); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
192 const auto cmd = server_->find("message").back(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
194 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
195 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "error=test:#joke:jean!jean@localhost:jean"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 BOOST_AUTO_TEST_SUITE_END() |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 BOOST_AUTO_TEST_SUITE_END() |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
202 } // !namespace |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
203 |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
204 } // !irccd |