Mercurial > irccd
annotate tests/src/plugins/joke/main.cpp @ 799:f362994133ca
windows: fix unit tests
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 12 Nov 2018 21:10:00 +0100 |
parents | 8c44bbcbbab9 |
children | 8460b4a34191 |
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 |
759
791d7591eca7
Tests: rename plugin_test to js_plugin_fixture
David Demelier <markand@malikania.fr>
parents:
741
diff
changeset
|
22 #include <irccd/test/js_plugin_fixture.hpp> |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
799
f362994133ca
windows: fix unit tests
David Demelier <markand@malikania.fr>
parents:
773
diff
changeset
|
24 namespace irccd::test { |
618
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 |
759
791d7591eca7
Tests: rename plugin_test to js_plugin_fixture
David Demelier <markand@malikania.fr>
parents:
741
diff
changeset
|
28 class joke_test : public js_plugin_fixture { |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 public: |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
30 joke_test() |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
31 : js_plugin_fixture(PLUGIN_PATH) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
32 { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
33 plugin_->set_formats({ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
34 { "error", "error=#{server}:#{channel}:#{origin}:#{nickname}" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
35 }); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
36 } |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
38 void load(plugin::map config = {}) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
39 { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
40 // Add file if not there. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
41 if (config.count("file") == 0) |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
42 config.emplace("file", CMAKE_CURRENT_SOURCE_DIR "/jokes.json"); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
44 plugin_->set_options(config); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
45 plugin_->handle_load(irccd_); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
46 } |
618
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 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
53 /* |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
54 * Jokes.json have two jokes. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
55 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
56 * aaa |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
57 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
58 * And |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
59 * |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
60 * bbbb |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
61 * bbbb |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
62 */ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
63 std::unordered_map<std::string, int> said{ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
64 { "aaa", 0 }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
65 { "bbbb", 0 } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
66 }; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
68 load(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
70 const auto call = [&] () { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
73 const auto cmd = server_->find("message").back(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
76 // "bbbb" is two lines. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
77 if (msg == "bbbb") { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
80 BOOST_TEST(std::any_cast<std::string>(first[0]) == "#joke"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
81 BOOST_TEST(std::any_cast<std::string>(first[1]) == "bbbb"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
82 } else |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
85 said[msg] += 1; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
86 server_->clear(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
87 }; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
89 call(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
90 call(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
92 BOOST_TEST(said.size() == 2U); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
93 BOOST_TEST(said["aaa"] == 1U); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
94 BOOST_TEST(said["bbbb"] == 1U); |
618
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 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
99 // xxx and yyy are both 3-lines which we disallow. only a must be said. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
100 load({ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
101 { "file", CMAKE_CURRENT_SOURCE_DIR "/error-toobig.json" }, |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
102 { "max-list-lines", "2" } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
103 }); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
105 std::unordered_map<std::string, int> said{ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
106 { "a", 0 } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
107 }; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
109 const auto call = [&] () { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
114 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
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 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
117 said[std::any_cast<std::string>(cmd[1])] += 1; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
118 server_->clear(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
119 }; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
121 call(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
122 call(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
123 call(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
125 BOOST_TEST(said.size() == 1U); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
126 BOOST_TEST(said["a"] == 3U); |
618
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 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
131 // Only a is the valid joke in this file. |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
132 load({{ "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
|
133 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
134 std::unordered_map<std::string, int> said{ |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
135 { "a", 0 } |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
136 }; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
138 const auto call = [&] () { |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
139 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
|
140 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
141 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
|
142 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
143 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
144 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
|
145 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
146 server_->clear(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
147 said[std::any_cast<std::string>(cmd[1])] += 1; |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
148 }; |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
150 call(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
151 call(); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
152 call(); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
154 BOOST_TEST(said.size() == 1U); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
155 BOOST_TEST(said["a"] == 3U); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 BOOST_AUTO_TEST_SUITE(errors) |
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_CASE(not_found) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
162 load({{"file", "doesnotexist.json"}}); |
618
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
164 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
|
165 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
166 const auto cmd = server_->find("message").back(); |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
167 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
168 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
169 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
|
170 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 BOOST_AUTO_TEST_CASE(not_array) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
174 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
|
175 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
176 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
|
177 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
178 const auto cmd = server_->find("message").back(); |
735
64839725f346
Tests: replace journal_server with mock_server
David Demelier <markand@malikania.fr>
parents:
723
diff
changeset
|
179 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
180 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
181 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
|
182 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 BOOST_AUTO_TEST_CASE(empty) |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 { |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
186 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
|
187 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
188 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
|
189 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
190 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
|
191 |
773
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
192 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#joke"); |
8c44bbcbbab9
Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents:
759
diff
changeset
|
193 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
|
194 } |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 |
5afc0b3a9ad8
Plugin joke: brand new plugin, closes #609 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 BOOST_AUTO_TEST_SUITE_END() |
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 |
723
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
200 } // !namespace |
e8c4ba5ed1c6
Tests: put code in anonymous namespaces, closes #889 @10m
David Demelier <markand@malikania.fr>
parents:
722
diff
changeset
|
201 |
799
f362994133ca
windows: fix unit tests
David Demelier <markand@malikania.fr>
parents:
773
diff
changeset
|
202 } // !irccd::test |