diff --git a/tests/unit-tests/helper/ndn-link-control-helper.t.cpp b/tests/unit-tests/helper/ndn-link-control-helper.t.cpp
index 1e59f14..3d79ffa 100644
--- a/tests/unit-tests/helper/ndn-link-control-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-link-control-helper.t.cpp
@@ -18,7 +18,7 @@
  **/
 
 #include "helper/ndn-link-control-helper.hpp"
-#include "NFD/core/scheduler.hpp"
+#include "daemon/common/global.hpp"
 
 #include "../tests-common.hpp"
 
@@ -54,16 +54,16 @@
   Simulator::Schedule(Seconds(5.1), ndn::LinkControlHelper::FailLink, getNode("1"), getNode("2"));
   Simulator::Schedule(Seconds(10.1), ndn::LinkControlHelper::UpLink, getNode("1"), getNode("2"));
 
-  nfd::scheduler::schedule(time::milliseconds(5200), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(5200), [&] {
       BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 6);
       BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 6);
     });
 
-  nfd::scheduler::schedule(time::milliseconds(10200), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(10200), [&] {
       BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 6);
       BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 6);
     });
-  nfd::scheduler::schedule(time::milliseconds(15100), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(15100), [&] {
       BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 11);
       BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 11);
     });
@@ -119,27 +119,27 @@
           "0s", "100s"}
     });
 
-  nfd::scheduler::schedule(time::milliseconds(10100), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(10100), [&] {
       LinkControlHelper::FailLink(getNode("1"), getNode("2"));
     });
 
   // just before link failure
-  nfd::scheduler::schedule(time::milliseconds(10050), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(10050), [&] {
       BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 11);
       BOOST_CHECK_EQUAL(getFace("3", "1")->getCounters().nInInterests, 11);
     });
 
   // just before link recovery
-  nfd::scheduler::schedule(time::milliseconds(20050), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(20050), [&] {
       BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 11);
       BOOST_CHECK_EQUAL(getFace("3", "1")->getCounters().nInInterests, 21);
     });
 
-  nfd::scheduler::schedule(time::milliseconds(20100), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(20100), [&] {
       LinkControlHelper::UpLink(getNode("1"), getNode("2"));
     });
 
-  nfd::scheduler::schedule(time::milliseconds(30050), [&] {
+  nfd::getScheduler().schedule(time::milliseconds(30050), [&] {
       BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 21);
       BOOST_CHECK_EQUAL(getFace("3", "1")->getCounters().nInInterests, 31);
     });
diff --git a/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp b/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
index cbcec2e..f1a8a14 100644
--- a/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
@@ -149,9 +149,9 @@
     this->setInstanceName(name);
   }
 
-  virtual void
-  afterReceiveInterest(const Face& inFace, const Interest& interest,
-                       const shared_ptr<nfd::pit::Entry>& pitEntry)
+  void
+  afterReceiveInterest(const nfd::FaceEndpoint& ingress, const Interest& interest,
+                       const shared_ptr<nfd::pit::Entry>& pitEntry) override
   {
     // this strategy doesn't forward interests
   }
