mirror of
https://github.com/boostorg/mysql.git
synced 2026-02-14 12:52:17 +00:00
Field view
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
//
|
||||
|
||||
#include <boost/mysql/execute_params.hpp>
|
||||
#include <boost/mysql/value.hpp>
|
||||
#include <boost/mysql/field_view.hpp>
|
||||
#include "test_common.hpp"
|
||||
#include "assert_type_equals.hpp"
|
||||
#include <boost/test/unit_test.hpp>
|
||||
@@ -14,19 +14,19 @@
|
||||
#include <type_traits>
|
||||
|
||||
using boost::mysql::make_execute_params;
|
||||
using boost::mysql::value;
|
||||
using boost::mysql::field_view;
|
||||
using boost::mysql::test::assert_type_equals;
|
||||
|
||||
// Make execute_args printable by Boost.Test
|
||||
namespace boost {
|
||||
namespace mysql {
|
||||
|
||||
template <typename ValueForwardIterator>
|
||||
std::ostream& boost_test_print_type(std::ostream& os, const execute_params<ValueForwardIterator>& v)
|
||||
template <typename FieldViewFwdIterator>
|
||||
std::ostream& boost_test_print_type(std::ostream& os, const execute_params<FieldViewFwdIterator>& v)
|
||||
{
|
||||
return os
|
||||
<< "execute_params<"
|
||||
<< boost::typeindex::type_id<ValueForwardIterator>().pretty_name()
|
||||
<< boost::typeindex::type_id<FieldViewFwdIterator>().pretty_name()
|
||||
<< ">("
|
||||
<< v.first()
|
||||
<< ", "
|
||||
@@ -38,8 +38,8 @@ std::ostream& boost_test_print_type(std::ostream& os, const execute_params<Value
|
||||
} // boost
|
||||
|
||||
// Make Boost.Test ignore list iterators when printing
|
||||
BOOST_TEST_DONT_PRINT_LOG_VALUE(std::forward_list<value>::iterator)
|
||||
BOOST_TEST_DONT_PRINT_LOG_VALUE(std::forward_list<value>::const_iterator)
|
||||
BOOST_TEST_DONT_PRINT_LOG_VALUE(std::forward_list<field_view>::iterator)
|
||||
BOOST_TEST_DONT_PRINT_LOG_VALUE(std::forward_list<field_view>::const_iterator)
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(test_execute_params)
|
||||
|
||||
@@ -48,7 +48,7 @@ BOOST_AUTO_TEST_SUITE(test_setters)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(set_first)
|
||||
{
|
||||
value arr [10];
|
||||
field_view arr [10];
|
||||
auto params = make_execute_params(arr);
|
||||
params.set_first(&arr[1]);
|
||||
BOOST_TEST(params.first() == &arr[1]);
|
||||
@@ -57,7 +57,7 @@ BOOST_AUTO_TEST_CASE(set_first)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(set_last)
|
||||
{
|
||||
value arr [10];
|
||||
field_view arr [10];
|
||||
auto params = make_execute_params(arr);
|
||||
params.set_last(&arr[1]);
|
||||
BOOST_TEST(params.first() == std::begin(arr));
|
||||
@@ -71,20 +71,20 @@ BOOST_AUTO_TEST_SUITE(test_make_execute_params_collection)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(c_array)
|
||||
{
|
||||
value arr [10];
|
||||
field_view arr [10];
|
||||
auto params = make_execute_params(arr);
|
||||
BOOST_TEST(params.first() == std::begin(arr));
|
||||
BOOST_TEST(params.last() == std::end(arr));
|
||||
assert_type_equals<decltype(params.first()), const value*>();
|
||||
assert_type_equals<decltype(params.first()), const field_view*>();
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(forward_list)
|
||||
{
|
||||
std::forward_list<value> l { value("a"), value("b") };
|
||||
std::forward_list<field_view> l { field_view("a"), field_view("b") };
|
||||
auto params = make_execute_params(l);
|
||||
BOOST_TEST(params.first() == std::begin(l));
|
||||
BOOST_TEST(params.last() == std::end(l));
|
||||
assert_type_equals<decltype(params.first()), std::forward_list<value>::const_iterator>();
|
||||
assert_type_equals<decltype(params.first()), std::forward_list<field_view>::const_iterator>();
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
@@ -94,20 +94,20 @@ BOOST_AUTO_TEST_SUITE(test_make_execute_params_range)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(c_array)
|
||||
{
|
||||
value arr [10];
|
||||
field_view arr [10];
|
||||
auto params = make_execute_params(&arr[0], &arr[2]);
|
||||
BOOST_TEST(params.first() == &arr[0]);
|
||||
BOOST_TEST(params.last() == &arr[2]);
|
||||
assert_type_equals<decltype(params.first()), value*>();
|
||||
assert_type_equals<decltype(params.first()), field_view*>();
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(forward_list)
|
||||
{
|
||||
std::forward_list<value> l { value("a"), value("b") };
|
||||
std::forward_list<field_view> l { field_view("a"), field_view("b") };
|
||||
auto params = make_execute_params(l.begin(), std::next(l.begin()));
|
||||
BOOST_TEST(params.first() == l.begin());
|
||||
BOOST_TEST(params.last() == std::next(l.begin()));
|
||||
assert_type_equals<decltype(params.first()), std::forward_list<value>::iterator>();
|
||||
assert_type_equals<decltype(params.first()), std::forward_list<field_view>::iterator>();
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
Reference in New Issue
Block a user