ServiceClient<>::hasPendingCallToServer()

This commit is contained in:
Pavel Kirienko 2015-05-16 23:57:11 +03:00
parent 0553d18cf9
commit 5e5540b8ce
2 changed files with 27 additions and 0 deletions

View File

@ -109,6 +109,8 @@ TEST(ServiceClient, Basic)
ASSERT_EQ(0, client2.getNumPendingCalls());
ASSERT_EQ(0, client3.getNumPendingCalls());
ASSERT_FALSE(client1.hasPendingCallToServer(1));
client1.setCallback(handler.bind());
client2.setCallback(client1.getCallback());
client3.setCallback(client1.getCallback());
@ -128,6 +130,11 @@ TEST(ServiceClient, Basic)
ASSERT_LT(0, client3.call(99, request)); // Will timeout!
ASSERT_LT(0, client3.call(1, request)); // OK - second request
ASSERT_TRUE(client1.hasPendingCallToServer(1));
ASSERT_TRUE(client2.hasPendingCallToServer(1));
ASSERT_TRUE(client3.hasPendingCallToServer(99));
ASSERT_TRUE(client3.hasPendingCallToServer(1));
std::cout << "!!! Spinning!" << std::endl;
ASSERT_EQ(3, nodes.b.getDispatcher().getNumServiceResponseListeners()); // Listening now!
@ -211,9 +218,11 @@ TEST(ServiceClient, Rejection)
ASSERT_EQ(1, nodes.b.getDispatcher().getNumServiceResponseListeners());
ASSERT_TRUE(client1.hasPendingCalls());
ASSERT_TRUE(client1.hasPendingCallToServer(1));
nodes.spinBoth(uavcan::MonotonicDuration::fromMSec(200));
ASSERT_FALSE(client1.hasPendingCalls());
ASSERT_FALSE(client1.hasPendingCallToServer(1));
ASSERT_EQ(0, nodes.b.getDispatcher().getNumServiceResponseListeners()); // Timed out