File: test_any_adapter.cpp

package info (click to toggle)
boost1.90 1.90.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 593,120 kB
  • sloc: cpp: 4,190,908; xml: 196,648; python: 34,618; ansic: 23,145; asm: 5,468; sh: 3,774; makefile: 1,161; perl: 1,020; sql: 728; ruby: 676; yacc: 478; java: 77; lisp: 24; csh: 6
file content (51 lines) | stat: -rw-r--r-- 1,328 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* 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 <boost/redis/adapter/any_adapter.hpp>
#include <boost/redis/ignore.hpp>
#include <boost/redis/response.hpp>

#include <string>
#define BOOST_TEST_MODULE any_adapter
#include <boost/test/included/unit_test.hpp>

using boost::redis::generic_response;
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<int> r1;
   response<int, std::string> r2;
   generic_response r3;

   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{ignore});
}

BOOST_AUTO_TEST_CASE(any_adapter_copy_move)
{
   // any_adapter can be copied/moved
   response<int, std::string> 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));
}