iodrivers_base
Fixture.hpp
Go to the documentation of this file.
1 #ifndef IODRIVERS_BASE_BOOST_FIXTURE_HPP
2 #define IODRIVERS_BASE_BOOST_FIXTURE_HPP
3 
4 #include <iodrivers_base/TestStream.hpp>
5 #include <vector>
6 #include <iodrivers_base/Exceptions.hpp>
7 
8 namespace iodrivers_base
9 {
75  template<typename Driver>
76  struct Fixture
77  {
79 
80  std::vector<uint8_t> packetBuffer;
82 
84  {
85  packetBuffer.resize(driver.MAX_PACKET_SIZE);
86  }
87 
91  {
92  if (!driver.getMainStream())
93  driver.openTestMode();
94  return dynamic_cast<TestStream*>(driver.getMainStream());
95  }
96 
99  std::vector<uint8_t> readPacket()
100  {
101  size_t size = driver.readPacket(packetBuffer.data(), packetBuffer.size());
102  std::vector<uint8_t> packet;
103  packet.insert(packet.end(), packetBuffer.begin(), packetBuffer.begin() + size);
104  return packet;
105  }
106 
108  void writePacket(std::vector<uint8_t> const& data)
109  {
110  writePacket(data.data(), data.size());
111  }
112 
114  void writePacket(uint8_t const* buffer, size_t size)
115  {
116  driver.writePacket(buffer, size);
117  }
118 
121  void pushDataToDriver(std::vector<uint8_t> const& data)
122  {
123  return getStream()->pushDataToDriver(data);
124  }
125 
133  template<typename Iterator>
134  void pushDataToDriver(Iterator begin, Iterator end)
135  {
136  std::vector<uint8_t> buffer(begin, end);
137  pushDataToDriver(buffer);
138  }
139 
142  std::vector<uint8_t> readDataFromDriver()
143  {
144  return getStream()->readDataFromDriver();
145  }
146 
162  unsigned int getQueuedBytes() const
163  {
164  return driver.getStatus().queued_bytes;
165  }
166  void EXPECT_REPLY(std::vector<uint8_t> const& expectation, std::vector<uint8_t> const& reply)
167  {
168  getStream()->EXPECT_REPLY(expectation,reply);
169  }
170 
177  {
178  if(!getStream()->expectationsAreEmpty())
180  }
181 
182  void setMockMode(bool mode)
183  {
184  getStream()->setMockMode(mode);
185  }
186 
188  {
190  }
191 
192  class GTestMockContext;
193  class BoostMockContext;
194  };
195 }
196 
197 #endif
void pushDataToDriver(std::vector< uint8_t > const &data)
Definition: TestStream.cpp:11
Driver fixture_driver_t
Definition: Fixture.hpp:78
void pushDataToDriver(Iterator begin, Iterator end)
Definition: Fixture.hpp:134
Definition: Driver.hpp:69
TestStream * getStream()
Definition: Fixture.hpp:90
int readPacket(uint8_t *buffer, int bufsize)
Definition: Driver.cpp:683
unsigned int queued_bytes
count of bytes received and rejected
Definition: Status.hpp:15
bool writePacket(uint8_t const *buffer, int bufsize)
Definition: Driver.cpp:784
Status getStatus() const
Definition: Driver.cpp:132
Definition: TestStream.hpp:19
Driver driver
Definition: Fixture.hpp:81
void setMockMode(bool mode)
Definition: Fixture.hpp:182
int const MAX_PACKET_SIZE
Definition: Driver.hpp:84
Fixture()
Definition: Fixture.hpp:83
void clearExpectations()
Definition: Fixture.hpp:187
Definition: Bus.hpp:9
IOStream * getMainStream() const
Definition: Driver.cpp:110
Definition: Fixture.hpp:76
std::vector< uint8_t > readPacket()
Definition: Fixture.hpp:99
void validateExpectationsAreEmpty()
Definition: Fixture.hpp:176
unsigned int getQueuedBytes() const
Definition: Fixture.hpp:162
void openTestMode()
Definition: Driver.cpp:233
Definition: FixtureGTest.hpp:11
std::vector< uint8_t > packetBuffer
Definition: Fixture.hpp:80
Definition: Exceptions.hpp:44
void writePacket(std::vector< uint8_t > const &data)
Definition: Fixture.hpp:108
void EXPECT_REPLY(std::vector< uint8_t > const &expectation, std::vector< uint8_t > const &reply)
Definition: Fixture.hpp:166
void pushDataToDriver(std::vector< uint8_t > const &data)
Definition: Fixture.hpp:121
void writePacket(uint8_t const *buffer, size_t size)
Definition: Fixture.hpp:114
void setMockMode(bool mode)
Definition: TestStream.cpp:115
std::vector< uint8_t > readDataFromDriver()
Definition: TestStream.cpp:19
Definition: FixtureBoostTest.hpp:11
void EXPECT_REPLY(std::vector< uint8_t > const &expectation, std::vector< uint8_t > const &reply)
Definition: TestStream.cpp:35
std::vector< uint8_t > readDataFromDriver()
Definition: Fixture.hpp:142
void clearExpectations()
Definition: TestStream.cpp:103