comparison tests/src/libirccd/command-server-join/main.cpp @ 737:190b16cfa848

Tests: improve command tests readability
author David Demelier <markand@malikania.fr>
date Tue, 24 Jul 2018 23:01:00 +0200
parents 64839725f346
children 8876412ba633
comparison
equal deleted inserted replaced
736:49b7c7660a00 737:190b16cfa848
43 43
44 BOOST_FIXTURE_TEST_SUITE(server_join_test_suite, server_join_test) 44 BOOST_FIXTURE_TEST_SUITE(server_join_test_suite, server_join_test)
45 45
46 BOOST_AUTO_TEST_CASE(basic) 46 BOOST_AUTO_TEST_CASE(basic)
47 { 47 {
48 const auto result = request({ 48 const auto [json, code] = request({
49 { "command", "server-join" }, 49 { "command", "server-join" },
50 { "server", "test" }, 50 { "server", "test" },
51 { "channel", "#music" }, 51 { "channel", "#music" },
52 { "password", "plop" } 52 { "password", "plop" }
53 }); 53 });
54 54
55 const auto cmd = server_->find("join").back(); 55 const auto cmd = server_->find("join").back();
56 56
57 BOOST_TEST(!code);
57 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#music"); 58 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#music");
58 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "plop"); 59 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "plop");
59 } 60 }
60 61
61 BOOST_AUTO_TEST_CASE(nopassword) 62 BOOST_AUTO_TEST_CASE(nopassword)
62 { 63 {
63 const auto result = request({ 64 const auto [json, code] = request({
64 { "command", "server-join" }, 65 { "command", "server-join" },
65 { "server", "test" }, 66 { "server", "test" },
66 { "channel", "#music" } 67 { "channel", "#music" }
67 }); 68 });
68 69
69 const auto cmd = server_->find("join").back(); 70 const auto cmd = server_->find("join").back();
70 71
72 BOOST_TEST(!code);
71 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#music"); 73 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#music");
72 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == ""); 74 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "");
73 } 75 }
74 76
75 BOOST_AUTO_TEST_SUITE(errors) 77 BOOST_AUTO_TEST_SUITE(errors)
76 78
77 BOOST_AUTO_TEST_CASE(invalid_identifier_1) 79 BOOST_AUTO_TEST_CASE(invalid_identifier_1)
78 { 80 {
79 const auto result = request({ 81 const auto [json, code] = request({
80 { "command", "server-join" }, 82 { "command", "server-join" },
81 { "server", 123456 }, 83 { "server", 123456 },
82 { "channel", "#music" } 84 { "channel", "#music" }
83 }); 85 });
84 86
85 BOOST_TEST(result.second == server_error::invalid_identifier); 87 BOOST_TEST(code == server_error::invalid_identifier);
86 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier); 88 BOOST_TEST(json["error"].get<int>() == server_error::invalid_identifier);
87 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 89 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
88 } 90 }
89 91
90 BOOST_AUTO_TEST_CASE(invalid_identifier_2) 92 BOOST_AUTO_TEST_CASE(invalid_identifier_2)
91 { 93 {
92 const auto result = request({ 94 const auto [json, code] = request({
93 { "command", "server-join" }, 95 { "command", "server-join" },
94 { "server", "" }, 96 { "server", "" },
95 { "channel", "#music" } 97 { "channel", "#music" }
96 }); 98 });
97 99
98 BOOST_TEST(result.second == server_error::invalid_identifier); 100 BOOST_TEST(code == server_error::invalid_identifier);
99 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_identifier); 101 BOOST_TEST(json["error"].get<int>() == server_error::invalid_identifier);
100 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 102 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
101 } 103 }
102 104
103 BOOST_AUTO_TEST_CASE(invalid_channel_1) 105 BOOST_AUTO_TEST_CASE(invalid_channel_1)
104 { 106 {
105 const auto result = request({ 107 const auto [json, code] = request({
106 { "command", "server-join" }, 108 { "command", "server-join" },
107 { "server", "test" }, 109 { "server", "test" },
108 { "channel", "" } 110 { "channel", "" }
109 }); 111 });
110 112
111 BOOST_TEST(result.second == server_error::invalid_channel); 113 BOOST_TEST(code == server_error::invalid_channel);
112 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_channel); 114 BOOST_TEST(json["error"].get<int>() == server_error::invalid_channel);
113 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 115 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
114 } 116 }
115 117
116 BOOST_AUTO_TEST_CASE(invalid_channel_2) 118 BOOST_AUTO_TEST_CASE(invalid_channel_2)
117 { 119 {
118 const auto result = request({ 120 const auto [json, code] = request({
119 { "command", "server-join" }, 121 { "command", "server-join" },
120 { "server", "test" }, 122 { "server", "test" },
121 { "channel", 123456 } 123 { "channel", 123456 }
122 }); 124 });
123 125
124 BOOST_TEST(result.second == server_error::invalid_channel); 126 BOOST_TEST(code == server_error::invalid_channel);
125 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_channel); 127 BOOST_TEST(json["error"].get<int>() == server_error::invalid_channel);
126 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 128 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
127 } 129 }
128 130
129 BOOST_AUTO_TEST_CASE(invalid_password) 131 BOOST_AUTO_TEST_CASE(invalid_password)
130 { 132 {
131 const auto result = request({ 133 const auto [json, code] = request({
132 { "command", "server-join" }, 134 { "command", "server-join" },
133 { "server", "test" }, 135 { "server", "test" },
134 { "channel", "#staff" }, 136 { "channel", "#staff" },
135 { "password", 123456 } 137 { "password", 123456 }
136 }); 138 });
137 139
138 BOOST_TEST(result.second == server_error::invalid_password); 140 BOOST_TEST(code == server_error::invalid_password);
139 BOOST_TEST(result.first["error"].template get<int>() == server_error::invalid_password); 141 BOOST_TEST(json["error"].get<int>() == server_error::invalid_password);
140 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 142 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
141 } 143 }
142 144
143 BOOST_AUTO_TEST_CASE(not_found) 145 BOOST_AUTO_TEST_CASE(not_found)
144 { 146 {
145 const auto result = request({ 147 const auto [json, code] = request({
146 { "command", "server-join" }, 148 { "command", "server-join" },
147 { "server", "unknown" }, 149 { "server", "unknown" },
148 { "channel", "#music" } 150 { "channel", "#music" }
149 }); 151 });
150 152
151 BOOST_TEST(result.second == server_error::not_found); 153 BOOST_TEST(code == server_error::not_found);
152 BOOST_TEST(result.first["error"].template get<int>() == server_error::not_found); 154 BOOST_TEST(json["error"].get<int>() == server_error::not_found);
153 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 155 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
154 } 156 }
155 157
156 BOOST_AUTO_TEST_SUITE_END() 158 BOOST_AUTO_TEST_SUITE_END()
157 159
158 BOOST_AUTO_TEST_SUITE_END() 160 BOOST_AUTO_TEST_SUITE_END()