comparison tests/src/libirccd/command-server-part/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_part_test_suite, server_part_test) 44 BOOST_FIXTURE_TEST_SUITE(server_part_test_suite, server_part_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-part" }, 49 { "command", "server-part" },
50 { "server", "test" }, 50 { "server", "test" },
51 { "channel", "#staff" }, 51 { "channel", "#staff" },
52 { "reason", "too noisy" } 52 { "reason", "too noisy" }
53 }); 53 });
54 54
55 const auto cmd = server_->find("part").back(); 55 const auto cmd = server_->find("part").back();
56 56
57 BOOST_TEST(!code);
57 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#staff"); 58 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#staff");
58 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "too noisy"); 59 BOOST_TEST(std::any_cast<std::string>(cmd[1]) == "too noisy");
59 } 60 }
60 61
61 BOOST_AUTO_TEST_CASE(noreason) 62 BOOST_AUTO_TEST_CASE(noreason)
62 { 63 {
63 const auto result = request({ 64 const auto [json, code] = request({
64 { "command", "server-part" }, 65 { "command", "server-part" },
65 { "server", "test" }, 66 { "server", "test" },
66 { "channel", "#staff" } 67 { "channel", "#staff" }
67 }); 68 });
68 69
69 const auto cmd = server_->find("part").back(); 70 const auto cmd = server_->find("part").back();
70 71
72 BOOST_TEST(!code);
71 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#staff"); 73 BOOST_TEST(std::any_cast<std::string>(cmd[0]) == "#staff");
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-part" }, 82 { "command", "server-part" },
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-part" }, 95 { "command", "server-part" },
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-part" }, 108 { "command", "server-part" },
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-part" }, 121 { "command", "server-part" },
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(not_found) 131 BOOST_AUTO_TEST_CASE(not_found)
130 { 132 {
131 const auto result = request({ 133 const auto [json, code] = request({
132 { "command", "server-part" }, 134 { "command", "server-part" },
133 { "server", "unknown" }, 135 { "server", "unknown" },
134 { "channel", "#music" } 136 { "channel", "#music" }
135 }); 137 });
136 138
137 BOOST_TEST(result.second == server_error::not_found); 139 BOOST_TEST(code == server_error::not_found);
138 BOOST_TEST(result.first["error"].template get<int>() == server_error::not_found); 140 BOOST_TEST(json["error"].get<int>() == server_error::not_found);
139 BOOST_TEST(result.first["errorCategory"].template get<std::string>() == "server"); 141 BOOST_TEST(json["errorCategory"].get<std::string>() == "server");
140 } 142 }
141 143
142 BOOST_AUTO_TEST_SUITE_END() 144 BOOST_AUTO_TEST_SUITE_END()
143 145
144 BOOST_AUTO_TEST_SUITE_END() 146 BOOST_AUTO_TEST_SUITE_END()