util: allow customizing FaceId in DummyClientFace
refs #5011
Change-Id: I0551ec55816f11bf3c05972c9a8bd6a3c4133310
diff --git a/tests/unit/util/dummy-client-face.t.cpp b/tests/unit/util/dummy-client-face.t.cpp
index b823be2..ad0c3bf 100644
--- a/tests/unit/util/dummy-client-face.t.cpp
+++ b/tests/unit/util/dummy-client-face.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2013-2020 Regents of the University of California.
+ * Copyright (c) 2013-2022 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -20,6 +20,7 @@
*/
#include "ndn-cxx/util/dummy-client-face.hpp"
+#include "ndn-cxx/mgmt/nfd/controller.hpp"
#include "tests/test-common.hpp"
#include "tests/unit/io-key-chain-fixture.hpp"
@@ -46,6 +47,54 @@
BOOST_CHECK(isOverrideInvoked);
}
+BOOST_AUTO_TEST_CASE(RegistrationReply)
+{
+ DummyClientFace::Options opts;
+ opts.enableRegistrationReply = true;
+ opts.registrationReplyFaceId = 3001;
+ DummyClientFace face(m_io, m_keyChain, opts);
+
+ ndn::nfd::Controller controller(face, m_keyChain);
+ ndn::nfd::ControlParameters params;
+ bool didRibRegisterSucceed = false;
+ controller.start<ndn::nfd::RibRegisterCommand>(
+ ndn::nfd::ControlParameters()
+ .setName("/Q")
+ .setOrigin(ndn::nfd::ROUTE_ORIGIN_NLSR)
+ .setCost(2400)
+ .setFlags(0),
+ [&] (const ndn::nfd::ControlParameters& p) {
+ BOOST_CHECK_EQUAL(p.getName(), "/Q");
+ BOOST_CHECK_EQUAL(p.getFaceId(), 3001);
+ BOOST_CHECK_EQUAL(p.getOrigin(), ndn::nfd::ROUTE_ORIGIN_NLSR);
+ BOOST_CHECK_EQUAL(p.getCost(), 2400);
+ BOOST_CHECK_EQUAL(p.getFlags(), 0);
+ didRibRegisterSucceed = true;
+ },
+ [] (const ndn::nfd::ControlResponse& r) {
+ BOOST_TEST_FAIL("RibRegisterCommand failed " << r);
+ });
+ advanceClocks(1_ms, 2);
+ BOOST_CHECK(didRibRegisterSucceed);
+
+ bool didRibUnregisterSucceed = false;
+ controller.start<ndn::nfd::RibUnregisterCommand>(
+ ndn::nfd::ControlParameters()
+ .setName("/Q")
+ .setOrigin(ndn::nfd::ROUTE_ORIGIN_NLSR),
+ [&] (const ndn::nfd::ControlParameters& p) {
+ BOOST_CHECK_EQUAL(p.getName(), "/Q");
+ BOOST_CHECK_EQUAL(p.getFaceId(), 3001);
+ BOOST_CHECK_EQUAL(p.getOrigin(), ndn::nfd::ROUTE_ORIGIN_NLSR);
+ didRibUnregisterSucceed = true;
+ },
+ [] (const ndn::nfd::ControlResponse& r) {
+ BOOST_TEST_FAIL("RibUnregisterCommand failed " << r);
+ });
+ advanceClocks(1_ms, 2);
+ BOOST_CHECK(didRibUnregisterSucceed);
+}
+
BOOST_AUTO_TEST_CASE(BroadcastLink)
{
DummyClientFace face1(m_io, m_keyChain, DummyClientFace::Options{true, true});
@@ -56,13 +105,13 @@
int nFace2Interest = 0;
face1.setInterestFilter("/face1",
[&] (const InterestFilter&, const Interest& interest) {
- BOOST_CHECK_EQUAL(interest.getName().toUri(), "/face1/data");
+ BOOST_CHECK_EQUAL(interest.getName(), "/face1/data");
nFace1Interest++;
face1.put(ndn::tests::makeNack(interest, lp::NackReason::NO_ROUTE));
}, nullptr, nullptr);
face2.setInterestFilter("/face2",
[&] (const InterestFilter&, const Interest& interest) {
- BOOST_CHECK_EQUAL(interest.getName().toUri(), "/face2/data");
+ BOOST_CHECK_EQUAL(interest.getName(), "/face2/data");
nFace2Interest++;
face2.put(*ndn::tests::makeData("/face2/data"));
return;
@@ -74,7 +123,7 @@
int nFace2Nack = 0;
face1.expressInterest(*makeInterest("/face2/data"),
[&] (const Interest& i, const Data& d) {
- BOOST_CHECK_EQUAL(d.getName().toUri(), "/face2/data");
+ BOOST_CHECK_EQUAL(d.getName(), "/face2/data");
nFace1Data++;
}, nullptr, nullptr);
face2.expressInterest(*makeInterest("/face1/data"),
@@ -82,7 +131,7 @@
BOOST_CHECK(false);
},
[&] (const Interest& i, const lp::Nack& n) {
- BOOST_CHECK_EQUAL(n.getInterest().getName().toUri(), "/face1/data");
+ BOOST_CHECK_EQUAL(n.getInterest().getName(), "/face1/data");
nFace2Nack++;
}, nullptr);