/* Copyright (c) 2018-2025 Marcelo Zimbres Silva (mzimbres@gmail.com) * * Distributed under the Boost Software License, Version 1.0. (See * accompanying file LICENSE.txt) */ #include #include #include #include #define BOOST_TEST_MODULE any_adapter #include using boost::redis::generic_response; using boost::redis::resp3::flat_tree; using boost::redis::response; using boost::redis::ignore; using boost::redis::any_adapter; using boost::redis::any_adapter; BOOST_AUTO_TEST_CASE(any_adapter_response_types) { // any_adapter can be used with any supported responses response r1; response r2; generic_response r3; flat_tree r4; BOOST_CHECK_NO_THROW(any_adapter{r1}); BOOST_CHECK_NO_THROW(any_adapter{r2}); BOOST_CHECK_NO_THROW(any_adapter{r3}); BOOST_CHECK_NO_THROW(any_adapter{r4}); BOOST_CHECK_NO_THROW(any_adapter{ignore}); } BOOST_AUTO_TEST_CASE(any_adapter_copy_move) { // any_adapter can be copied/moved response r; auto ad1 = any_adapter{r}; // copy constructor auto ad2 = any_adapter(ad1); // move constructor auto ad3 = any_adapter(std::move(ad2)); // copy assignment BOOST_CHECK_NO_THROW(ad2 = ad1); // move assignment BOOST_CHECK_NO_THROW(ad2 = std::move(ad1)); }