tests: improve test coverage of FaceManager
And misc cleanups in various mgmt test suites.
Refs: #3377
Change-Id: I189f8891559dae6e2329338e7707991ca476db0e
diff --git a/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp b/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp
index 2f1e27a..e6d9988 100644
--- a/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp
+++ b/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp
@@ -42,46 +42,32 @@
class NfdRibReadvertiseDestinationFixture : public GlobalIoTimeFixture, public KeyChainFixture
{
protected:
- NfdRibReadvertiseDestinationFixture()
- : nSuccessCallbacks(0)
- , nFailureCallbacks(0)
- , face(g_io, m_keyChain, {true, false})
- , controller(face, m_keyChain)
- , dest(controller, rib, ndn::nfd::CommandOptions().setPrefix("/localhost/nlsr"))
- , successCallback([this] { nSuccessCallbacks++; })
- , failureCallback([this] (const std::string&) { nFailureCallbacks++; })
- {
- }
-
-public:
- uint32_t nSuccessCallbacks;
- uint32_t nFailureCallbacks;
-
-protected:
static inline const Name RIB_REGISTER_COMMAND_PREFIX = Name("/localhost/nlsr")
.append(ndn::nfd::RibRegisterCommand::getName());
static inline const Name RIB_UNREGISTER_COMMAND_PREFIX = Name("/localhost/nlsr")
.append(ndn::nfd::RibUnregisterCommand::getName());
- ndn::DummyClientFace face;
- ndn::nfd::Controller controller;
+ ndn::DummyClientFace face{g_io, m_keyChain, {true, false}};
+ ndn::nfd::Controller controller{face, m_keyChain};
Rib rib;
- NfdRibReadvertiseDestination dest;
- std::function<void()> successCallback;
- std::function<void(const std::string&)> failureCallback;
+ NfdRibReadvertiseDestination dest{controller, rib, ndn::nfd::CommandOptions().setPrefix("/localhost/nlsr")};
+
+ std::function<void()> successCallback = [this] { nSuccessCallbacks++; };
+ std::function<void(const std::string&)> failureCallback = [this] (auto&&) { nFailureCallbacks++; };
+
+ int nSuccessCallbacks = 0;
+ int nFailureCallbacks = 0;
};
BOOST_AUTO_TEST_SUITE(Rib)
BOOST_FIXTURE_TEST_SUITE(TestNfdRibReadvertiseDestination, NfdRibReadvertiseDestinationFixture)
-class AdvertiseSuccessScenario
+struct AdvertiseSuccessScenario
{
-public:
- ndn::nfd::ControlResponse
+ static ndn::nfd::ControlResponse
makeResponse(const ControlParameters& sentCp)
{
ControlParameters response;
-
response.setFaceId(1)
.setName(sentCp.getName())
.setOrigin(ndn::nfd::ROUTE_ORIGIN_CLIENT)
@@ -92,40 +78,30 @@
responsePayload.setCode(200)
.setText("Successfully registered.")
.setBody(response.wireEncode());
+
return responsePayload;
}
- void
- checkCommandOutcome(NfdRibReadvertiseDestinationFixture* fixture)
- {
- BOOST_CHECK_EQUAL(fixture->nSuccessCallbacks, 1);
- BOOST_CHECK_EQUAL(fixture->nFailureCallbacks, 0);
- }
+ static constexpr int nExpectedSuccessCalls = 1;
+ static constexpr int nExpectedFailureCalls = 0;
};
-class AdvertiseFailureScenario
+struct AdvertiseFailureScenario
{
-public:
- ndn::nfd::ControlResponse
- makeResponse(ControlParameters sentCp)
+ static ndn::nfd::ControlResponse
+ makeResponse(const ControlParameters& sentCp)
{
- ndn::nfd::ControlResponse responsePayload(403, "Not Authenticated");
- return responsePayload;
+ return ndn::nfd::ControlResponse(403, "Not Authenticated");
}
- void
- checkCommandOutcome(NfdRibReadvertiseDestinationFixture* fixture)
- {
- BOOST_CHECK_EQUAL(fixture->nFailureCallbacks, 1);
- BOOST_CHECK_EQUAL(fixture->nSuccessCallbacks, 0);
- }
+ static constexpr int nExpectedSuccessCalls = 0;
+ static constexpr int nExpectedFailureCalls = 1;
};
using AdvertiseScenarios = boost::mp11::mp_list<AdvertiseSuccessScenario, AdvertiseFailureScenario>;
BOOST_AUTO_TEST_CASE_TEMPLATE(Advertise, Scenario, AdvertiseScenarios)
{
- Scenario scenario;
Name prefix("/ndn/memphis/test");
ReadvertisedRoute rr(prefix);
@@ -139,27 +115,27 @@
// Parse the sent command Interest to check correctness.
ControlParameters sentCp;
- BOOST_CHECK_NO_THROW(sentCp.wireDecode(sentInterest.getName().get(RIB_REGISTER_COMMAND_PREFIX.size()).blockFromValue()));
+ BOOST_CHECK_NO_THROW(sentCp.wireDecode(sentInterest.getName().get(RIB_REGISTER_COMMAND_PREFIX.size())
+ .blockFromValue()));
BOOST_CHECK_EQUAL(sentCp.getOrigin(), ndn::nfd::ROUTE_ORIGIN_CLIENT);
BOOST_CHECK_EQUAL(sentCp.getName(), prefix);
- ndn::nfd::ControlResponse responsePayload = scenario.makeResponse(sentCp);
+ ndn::nfd::ControlResponse responsePayload = Scenario::makeResponse(sentCp);
auto responseData = makeData(sentInterest.getName());
responseData->setContent(responsePayload.wireEncode());
face.receive(*responseData);
this->advanceClocks(10_ms);
- scenario.checkCommandOutcome(this);
+ BOOST_TEST(nSuccessCallbacks == Scenario::nExpectedSuccessCalls);
+ BOOST_TEST(nFailureCallbacks == Scenario::nExpectedFailureCalls);
}
-class WithdrawSuccessScenario
+struct WithdrawSuccessScenario
{
-public:
- ndn::nfd::ControlResponse
+ static ndn::nfd::ControlResponse
makeResponse(const ControlParameters& sentCp)
{
ControlParameters response;
-
response.setFaceId(1)
.setName(sentCp.getName())
.setOrigin(ndn::nfd::ROUTE_ORIGIN_CLIENT);
@@ -172,37 +148,26 @@
return responsePayload;
}
- void
- checkCommandOutcome(NfdRibReadvertiseDestinationFixture* fixture)
- {
- BOOST_CHECK_EQUAL(fixture->nSuccessCallbacks, 1);
- BOOST_CHECK_EQUAL(fixture->nFailureCallbacks, 0);
- }
+ static constexpr int nExpectedSuccessCalls = 1;
+ static constexpr int nExpectedFailureCalls = 0;
};
-class WithdrawFailureScenario
+struct WithdrawFailureScenario
{
-public:
- ndn::nfd::ControlResponse
- makeResponse(ControlParameters sentCp)
+ static ndn::nfd::ControlResponse
+ makeResponse(const ControlParameters& sentCp)
{
- ndn::nfd::ControlResponse responsePayload(403, "Not authenticated");
- return responsePayload;
+ return ndn::nfd::ControlResponse(403, "Not authenticated");
}
- void
- checkCommandOutcome(NfdRibReadvertiseDestinationFixture* fixture)
- {
- BOOST_CHECK_EQUAL(fixture->nFailureCallbacks, 1);
- BOOST_CHECK_EQUAL(fixture->nSuccessCallbacks, 0);
- }
+ static constexpr int nExpectedSuccessCalls = 0;
+ static constexpr int nExpectedFailureCalls = 1;
};
using WithdrawScenarios = boost::mp11::mp_list<WithdrawSuccessScenario, WithdrawFailureScenario>;
BOOST_AUTO_TEST_CASE_TEMPLATE(Withdraw, Scenario, WithdrawScenarios)
{
- Scenario scenario;
Name prefix("/ndn/memphis/test");
ReadvertisedRoute rr(prefix);
@@ -215,18 +180,20 @@
BOOST_CHECK(RIB_UNREGISTER_COMMAND_PREFIX.isPrefixOf(sentInterest.getName()));
ControlParameters sentCp;
- BOOST_CHECK_NO_THROW(sentCp.wireDecode(sentInterest.getName().get(RIB_UNREGISTER_COMMAND_PREFIX.size()).blockFromValue()));
+ BOOST_CHECK_NO_THROW(sentCp.wireDecode(sentInterest.getName().get(RIB_UNREGISTER_COMMAND_PREFIX.size())
+ .blockFromValue()));
BOOST_CHECK_EQUAL(sentCp.getOrigin(), ndn::nfd::ROUTE_ORIGIN_CLIENT);
BOOST_CHECK_EQUAL(sentCp.getName(), prefix);
- ndn::nfd::ControlResponse responsePayload = scenario.makeResponse(sentCp);
+ ndn::nfd::ControlResponse responsePayload = Scenario::makeResponse(sentCp);
auto responseData = makeData(sentInterest.getName());
responseData->setContent(responsePayload.wireEncode());
face.receive(*responseData);
this->advanceClocks(1_ms);
- scenario.checkCommandOutcome(this);
+ BOOST_TEST(nSuccessCallbacks == Scenario::nExpectedSuccessCalls);
+ BOOST_TEST(nFailureCallbacks == Scenario::nExpectedFailureCalls);
}
BOOST_AUTO_TEST_CASE(DestinationAvailability)
@@ -235,8 +202,7 @@
Name commandPrefix("/localhost/nlsr");
Route route;
- dest.afterAvailabilityChange.connect(
- std::bind(&std::vector<bool>::push_back, &availabilityChangeHistory, _1));
+ dest.afterAvailabilityChange.connect([&] (bool val) { availabilityChangeHistory.push_back(val); });
BOOST_CHECK_EQUAL(dest.isAvailable(), false);
rib.insert(commandPrefix, route);