Скажем, у меня есть такой макет:
class MockSocket : public Socket
{
public:
MOCK_METHOD1(Write, bool(Packet *p));
};
И я хочу проверить, вызывается ли метод Write с объектом, удовлетворяющим следующим условиям:
- 1) когда я вызываю функцию get_QL() для этого объекта, я получаю 0 в качестве возвращаемого значения
- 2) когда я вызываю функцию get_MAC(), я получаю uint8_t*, который, как я знаю, имеет длину 6, но без терминатора строки.
Как я могу написать второе условие в GMock? Я пробовал что-то подобное, но второе свойство работает неправильно.
EXPECT_CALL(ms, Write(AllOf(Property(&ESMCPacket::get_QL, 0), Property(&ESMCPacket::get_MAC, (mmac_source1))))).Times(1);