iodrivers_base
TestStream.hpp
Go to the documentation of this file.
1 #ifndef IODRIVERS_BASE_HPP
2 #define IODRIVERS_BASE_HPP
3 
4 #include <iodrivers_base/IOStream.hpp>
5 #include <vector>
6 #include <list>
7 
8 namespace iodrivers_base
9 {
19  class TestStream : public IOStream
20  {
21  std::vector<uint8_t> to_driver;
22  std::vector<uint8_t> from_driver;
23  std::list<std::vector<uint8_t> > expectations;
24  std::list<std::vector<uint8_t> > replies;
25  bool mock_mode;
26 
27  public:
28  TestStream(): mock_mode(false)
29  {}
30 
33  void pushDataToDriver(std::vector<uint8_t> const& data);
34 
40  std::vector<uint8_t> readDataFromDriver();
41 
48  void EXPECT_REPLY(std::vector<uint8_t> const& expectation, std::vector<uint8_t> const& reply);
49  void waitRead(base::Time const& timeout);
50  void waitWrite(base::Time const& timeout);
51  size_t read(uint8_t* buffer, size_t buffer_size);
52  size_t write(uint8_t const* buffer, size_t buffer_size);
53  void clear();
54  bool expectationsAreEmpty();
55  void setMockMode(bool mode);
56  void clearExpectations();
57  };
58 }
59 
60 #endif
void pushDataToDriver(std::vector< uint8_t > const &data)
Definition: TestStream.cpp:11
Definition: TestStream.hpp:19
void clear()
Definition: TestStream.cpp:98
Definition: IOStream.hpp:19
void waitRead(base::Time const &timeout)
Definition: TestStream.cpp:26
size_t read(uint8_t *buffer, size_t buffer_size)
Definition: TestStream.cpp:44
TestStream()
Definition: TestStream.hpp:28
void waitWrite(base::Time const &timeout)
Definition: TestStream.cpp:31
bool expectationsAreEmpty()
Definition: TestStream.cpp:110
void setMockMode(bool mode)
Definition: TestStream.cpp:115
std::vector< uint8_t > readDataFromDriver()
Definition: TestStream.cpp:19
void EXPECT_REPLY(std::vector< uint8_t > const &expectation, std::vector< uint8_t > const &reply)
Definition: TestStream.cpp:35
void clearExpectations()
Definition: TestStream.cpp:103
size_t write(uint8_t const *buffer, size_t buffer_size)
Definition: TestStream.cpp:52