2
0
mirror of https://github.com/boostorg/mysql.git synced 2026-02-15 13:12:21 +00:00

row_view and row as_vector

This commit is contained in:
Ruben Perez
2022-10-04 22:34:54 +02:00
parent 38cd17d46c
commit b48d0e050a
4 changed files with 73 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
using boost::mysql::row;
using boost::mysql::row_view;
using boost::mysql::field_view;
using boost::mysql::field;
using boost::mysql::make_field_views;
using boost::mysql::test::makerow;
using boost::mysql::detail::stringize;
@@ -437,6 +438,35 @@ BOOST_AUTO_TEST_CASE(non_empty)
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE(as_vector)
BOOST_AUTO_TEST_CASE(empty)
{
std::vector<field> vec { field_view("abc") };
row r;
r.as_vector(vec);
BOOST_TEST(vec.empty());
}
BOOST_AUTO_TEST_CASE(non_empty)
{
std::vector<field> vec { field_view("abc") };
row r = makerow(42u, "abc");
r.as_vector(vec);
BOOST_TEST(vec.size() == 2);
BOOST_TEST(vec[0].as_uint64() == 42u);
BOOST_TEST(vec[1].as_string() == "abc");
}
BOOST_AUTO_TEST_CASE(return_value)
{
auto vec = makerow(42u, "abc").as_vector();
BOOST_TEST(vec.size() == 2);
BOOST_TEST(vec[0].as_uint64() == 42u);
BOOST_TEST(vec[1].as_string() == "abc");
}
BOOST_AUTO_TEST_SUITE_END()
// operator== relies on row_view's operator==, so only
// a small subset of tests here
BOOST_AUTO_TEST_SUITE(operator_equals)