34 TEST_CASE(
"SerialPort's 'read' method takes a timeout and returns a vector " 35 "of bytes.",
"[SerialPort]")
39 fakeit::Mock<SerialPort> mock_port(serial);
43 void(std::back_insert_iterator<std::vector<uint8_t>>,
44 const std::chrono::nanoseconds &))).AlwaysDo(
48 std::vector<uint8_t> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
49 std::copy(vec.begin(), vec.end(), a);
52 std::vector<uint8_t> vec_compare = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
53 std::chrono::nanoseconds timeout = 1ms;
54 auto data = port.
read(timeout);
55 REQUIRE(data == vec_compare);
59 void(std::back_insert_iterator<std::vector<uint8_t>>,
60 const std::chrono::nanoseconds &)).Matching(
70 TEST_CASE(
"SerialPort's 'read' method takes a back inserter and a timeout " 71 "writes the received bytes to the back inserter.",
"[SerialPort]")
74 using read_type = std::vector<uint8_t>(
const std::chrono::nanoseconds &);
76 fakeit::Mock<SerialPort> mock_port(serial);
79 mock_port, read, read_type)).AlwaysDo([](
auto a)
82 std::vector<uint8_t> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
86 std::vector<uint8_t> vec_compare = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
87 std::chrono::nanoseconds timeout = 1ms;
88 std::vector<uint8_t> data;
89 port.
read(std::back_inserter(data), timeout);
90 REQUIRE(data == vec_compare);
93 mock_port, read, read_type).Matching([](
auto a)
100 TEST_CASE(
"SerialPort's 'write' method accepts a vector of bytes.",
105 fakeit::Mock<SerialPort> mock_port(serial);
109 void(std::vector<uint8_t>::const_iterator,
110 std::vector<uint8_t>::const_iterator)));
112 std::vector<uint8_t> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
117 void(std::vector<uint8_t>::const_iterator,
118 std::vector<uint8_t>::const_iterator)).Matching(
121 return a == vec.begin() && b == vec.end();
126 TEST_CASE(
"SerialPort's 'write' method accepts two vector iterators",
131 fakeit::Mock<SerialPort> mock_port(serial);
132 std::vector<uint8_t> write_vec;
136 void(
const std::vector<uint8_t> &))).AlwaysDo(
142 std::vector<uint8_t> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
143 port.
write(vec.begin(), vec.end());
147 void(
const std::vector<uint8_t> &))).Once();
148 REQUIRE(vec == write_vec);
std::string str(const T &object)
TEST_CASE("SerialPort's 'read' method takes a timeout and returns a vector " "of bytes.", "[SerialPort]")
virtual std::vector< uint8_t > read(const std::chrono::nanoseconds &timeout=std::chrono::nanoseconds::zero())
virtual void write(const std::vector< uint8_t > &data)