fw: properly handle consumer retransmission in AsfStrategy

Do not reject an existing PIT entry if there are no
next hops during consumer retransmission

refs: #4874

Change-Id: Iea8602897e99fdf2f6fd0226b5eb74bd7a4bced1
diff --git a/tests/daemon/fw/topology-tester.cpp b/tests/daemon/fw/topology-tester.cpp
index 0e19b57..50d3de5 100644
--- a/tests/daemon/fw/topology-tester.cpp
+++ b/tests/daemon/fw/topology-tester.cpp
@@ -252,13 +252,23 @@
 }
 
 void
-TopologyTester::addEchoProducer(ndn::Face& face, const Name& prefix)
+TopologyTester::addEchoProducer(ndn::Face& face, const Name& prefix, time::nanoseconds replyDelay)
 {
-  face.setInterestFilter(prefix,
-      [&face] (const auto&, const Interest& interest) {
-        auto data = makeData(interest.getName());
+  BOOST_ASSERT(replyDelay >= 0_ns);
+
+  face.setInterestFilter(prefix, [=, &face] (const auto&, const auto& interest) {
+    auto data = makeData(interest.getName());
+    if (replyDelay == 0_ns) {
+      // reply immediately
+      face.put(*data);
+    }
+    else {
+      // delay the reply
+      getScheduler().schedule(replyDelay, [&face, data = std::move(data)] {
         face.put(*data);
       });
+    }
+  });
 }
 
 void