8#include "gmock/gmock.h"
9#include "gtest/gtest.h"
14#include "EoProtocolAS.h"
21using ::testing::InSequence;
22using ::testing::InvokeArgument;
23using ::testing::Matcher;
24using ::testing::Pointee;
25using ::testing::Return;
26using ::testing::TypedEq;
27using testing::internal::operator==;
30using namespace yarp::os;
41 using yarp::dev::embObjMultipleFTsensors::embObjMultipleFTsensors::calculateBoardTime;
42 using yarp::dev::embObjMultipleFTsensors::embObjMultipleFTsensors::getSixAxisForceTorqueSensorMeasure;
43 using yarp::dev::embObjMultipleFTsensors::embObjMultipleFTsensors::update;
64TEST(MultiplembObjMultipleFTsensor, sendConfig2boards_simple_positive_001)
69 parser.
ftInfo_ = {{
"fakeId", {10, 200, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}};
71 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_config);
73 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32First, _, 10, 0.010, 0.050)).WillOnce(Return(
true));
81TEST(MultiplembObjMultipleFTsensor, sendConfig2boards_double_sensor_positive_001)
86 parser.
ftInfo_ = {{
"fakeId", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}, {
"fakeId2", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}};
88 eOas_ft_config_t cfg = {eoas_ft_mode_calibrated, 10, 0, 100};
89 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_config);
90 uint32_t id32Second = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 1, eoprot_tag_as_ft_config);
94 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32First, _, 10, 0.010, 0.050)).WillOnce(Return(
true));
95 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32Second, _, 10, 0.010, 0.050)).WillOnce(Return(
true));
102TEST(MultiplembObjMultipleFTsensor, sendConfig2boards_simple_negative_001)
107 parser.
ftInfo_ = {{
"fakeId", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}};
109 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_config);
111 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32First, _, 10, 0.010, 0.050)).WillOnce(Return(
false));
118TEST(MultiplembObjMultipleFTsensor, sendStart2boards_simple_positive_001)
123 parser.
ftInfo_ = {{
"fakeId", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}};
125 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_cmmnds_enable);
129 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32First, _, 10, 0.010, 0.050)).WillOnce(Return(
true));
136TEST(MultiplembObjMultipleFTsensor, sendStart2boards_double_positive_001)
141 parser.
ftInfo_ = {{
"fakeId", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}, {
"fakeId1", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}};
143 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_cmmnds_enable);
144 uint32_t id32Second = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 1, eoprot_tag_as_ft_cmmnds_enable);
148 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32First, _, 10, 0.010, 0.050)).WillOnce(Return(
true));
149 EXPECT_CALL(deviceRes, setcheckRemoteValue(id32Second, _, 10, 0.010, 0.050)).WillOnce(Return(
true));
156TEST(MultiplembObjMultipleFTsensor, serviceSetRegulars_simple_positive_001)
161 parser.
ftInfo_ = {{
"fakeId", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}, {
"fakeId1", {10, 100, eoas_ft_mode_calibrated, eobrd_unknown, 0, 0, 0, 0, 0, 0, 0}}};
163 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_status_timedvalue);
164 uint32_t id32Second = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 1, eoprot_tag_as_ft_status_timedvalue);
165 vector<eOprotID32_t> ids = {id32First, id32Second};
167 EXPECT_CALL(deviceRes, serviceSetRegulars(eomn_serv_category_ft, ids, _)).WillOnce(Return(
true));
174TEST(MultiplembObjMultipleFTsensor, update_simple_positive_001)
177 yarp::os::Network::init();
178 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
180 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 0, eoprot_tag_as_ft_status_timedvalue);
181 eOas_ft_timedvalue_t
data = {100, 1, 2, 3, {5, 6, 7, 8, 9, 10}};
182 yarp::sig::Vector expected = {5, 6, 7, 8, 9, 10};
184 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
187 bool ret = device.
update(id32First, 1, (
void *)&
data);
193TEST(MultiplembObjMultipleFTsensor, update_simple_positive_002)
196 yarp::os::Network::init();
197 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
199 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 1, eoprot_tag_as_ft_status_timedvalue);
200 eOas_ft_timedvalue_t
data = {100, 1, 2, 3, {5, 6, 7, 8, 9, 10}};
201 yarp::sig::Vector expected = {5, 6, 7, 8, 9, 10};
202 yarp::sig::Vector expectedEmpty = {0, 0, 0, 0, 0, 0};
204 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
207 bool ret = device.
update(id32First, 1, (
void *)&
data);
215TEST(MultiplembObjMultipleFTsensor, update_negative_001)
218 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
220 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 4, eoprot_tag_as_ft_status_timedvalue);
221 eOas_ft_timedvalue_t
data = {100, 1, 2, 3, {5, 6, 7, 8, 9, 10}};
222 yarp::sig::Vector expected = {5, 6, 7, 8, 9, 10};
223 yarp::sig::Vector expectedEmpty = {0, 0, 0, 0, 0, 0};
225 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
228 bool ret = device.
update(id32First, 1, (
void *)&
data);
232TEST(MultiplembObjMultipleFTsensor, update_negative_002)
235 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
237 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_pos, 3, eoprot_tag_as_ft_status_timedvalue);
238 eOas_ft_timedvalue_t
data = {100, 1, 2, 3, {5, 6, 7, 8, 9, 10}};
239 yarp::sig::Vector expected = {5, 6, 7, 8, 9, 10};
240 yarp::sig::Vector expectedEmpty = {0, 0, 0, 0, 0, 0};
242 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
245 bool ret = device.
update(id32First, 3, (
void *)&
data);
249TEST(MultiplembObjMultipleFTsensor, update_negative_003)
252 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
254 uint32_t id32First = eoprot_ID_get(eoprot_endpoint_analogsensors, eoprot_entity_as_ft, 3, eoprot_tag_as_ft_status);
255 eOas_ft_timedvalue_t
data = {100, 1, 2, 3, {5, 6, 7, 8, 9, 10}};
256 yarp::sig::Vector expected = {5, 6, 7, 8, 9, 10};
257 yarp::sig::Vector expectedEmpty = {0, 0, 0, 0, 0, 0};
259 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
262 bool ret = device.
update(id32First, 3, (
void *)&
data);
266TEST(MultiplembObjMultipleFTsensor, getNrOfSixAxisForceTorqueSensors_positive_001)
269 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
274 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
277 yarp::sig::Vector
data;
281 yarp::sig::Vector expected = {1, 2, 3, 4, 5, 6};
282 EXPECT_EQ(expected,
data);
283 EXPECT_EQ(99.49, timestamp);
286TEST(MultiplembObjMultipleFTsensor, getNrOfSixAxisForceTorqueSensors_double_positive_001)
289 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
292 device.
ftSensorsData_ = {{{0}, {{1, 2, 3, 4, 5, 6}, 99.49}}, {{1}, {{10, 20, 30, 40, 50, 60}, 99.49}}};
294 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
297 yarp::sig::Vector
data;
301 yarp::sig::Vector expected = {10, 20, 30, 40, 50, 60};
302 EXPECT_EQ(expected,
data);
303 EXPECT_EQ(99.49, timestamp);
306TEST(MultiplembObjMultipleFTsensor, getNrOfSgetTemperatureSensorMeasure_positive_001)
309 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
314 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
321 double expected = 3.4;
322 EXPECT_DOUBLE_EQ(expected,
data);
323 EXPECT_EQ(99.49, timestamp);
326TEST(MultiplembObjMultipleFTsensor, calculateBoardTime_positive_001)
329 yarp::os::Network::init();
330 std::shared_ptr<embObjDevPrivData_Mock> privateData = std::make_shared<embObjDevPrivData_Mock>(
"test");
333 EXPECT_CALL(*privateData, isOpen()).WillRepeatedly(Return(
true));
340 double diff = second - first;
342 EXPECT_DOUBLE_EQ(1.0,diff);
MOCK_METHOD(bool, setcheckRemoteValue,(const eOprotID32_t, void *, const unsigned int, const double, const double),(override))
MOCK_METHOD(bool, serviceSetRegulars,(eOmn_serv_category_t, vector< eOprotID32_t > &, double),(override))
std::map< std::string, FtInfo > ftInfo_
embObjDevPrivData_Mock(std::string name)
MOCK_METHOD(bool, isOpen,(),(const, override))
embObjMultipleFTsensor_Mock()
embObjMultipleFTsensor_Mock(std::shared_ptr< yarp::dev::embObjDevPrivData > device)
bool serviceSetRegulars(eOmn_serv_category_t category, vector< eOprotID32_t > &id32vector, double timeout=0.500)
bool setcheckRemoteValue(const eOprotID32_t id32, void *value, const unsigned int retries=10, const double waitbeforecheck=0.001, const double timeout=0.050)
virtual bool isOpen() const
bool initRegulars(ServiceParserMultipleFt &parser, eth::AbstractEthResource *deviceRes)
std::map< eOprotID32_t, FtData > ftSensorsData_
bool sendStart2boards(ServiceParserMultipleFt &parser, eth::AbstractEthResource *deviceRes)
virtual bool getTemperatureSensorMeasure(size_t sensorindex, double &out, double ×tamp) const override
double calculateBoardTime(eOabstime_t current)
virtual bool update(eOprotID32_t id32, double timestamp, void *rxdata)
std::map< eOprotID32_t, TemperatureData > temperaturesensordata_
bool sendConfig2boards(ServiceParserMultipleFt &parser, eth::AbstractEthResource *deviceRes)
virtual bool getSixAxisForceTorqueSensorMeasure(size_t sensorindex, yarp::sig::Vector &out, double ×tamp) const override
Copyright (C) 2008 RobotCub Consortium.
TEST(MultiplembObjMultipleFTsensor, sendConfig2boards_simple_positive_001)