diff --git a/tests/mgmt/fib-manager.cpp b/tests/mgmt/fib-manager.cpp
index 25c38b3..1c1cf9f 100644
--- a/tests/mgmt/fib-manager.cpp
+++ b/tests/mgmt/fib-manager.cpp
@@ -13,9 +13,6 @@
 
 #include <algorithm>
 
-#include <ndn-cpp-dev/management/fib-management-options.hpp>
-#include <ndn-cpp-dev/management/control-response.hpp>
-
 #include <boost/test/unit_test.hpp>
 
 namespace nfd {
@@ -58,7 +55,7 @@
     m_callbackFired = true;
     Block controlRaw = response.getContent().blockFromValue();
 
-    ndn::ControlResponse control;
+    ControlResponse control;
     control.wireDecode(controlRaw);
 
     NFD_LOG_DEBUG("received control response"
@@ -161,7 +158,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                           face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
   options.setCost(1);
@@ -192,7 +189,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                      face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
   options.setCost(101);
@@ -226,7 +223,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                      face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
   options.setCost(101);
@@ -284,7 +281,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                      face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1000);
   options.setCost(101);
@@ -316,7 +313,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                           face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
   options.setCost(101);
@@ -355,7 +352,7 @@
   for (int i = 1; i <= 2; i++)
     {
 
-      ndn::FibManagementOptions options;
+      FibManagementOptions options;
       options.setName("/hello");
       options.setFaceId(1);
       options.setCost(100 + i);
@@ -408,7 +405,7 @@
 
   fib.insert("/hello");
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
 
@@ -481,7 +478,7 @@
                      face);
 
   {
-    ndn::FibManagementOptions options;
+    FibManagementOptions options;
     options.setName("/hello");
 
     Block encodedOptions(options.wireEncode());
@@ -510,7 +507,7 @@
   resetCallbackFired();
 
   {
-    ndn::FibManagementOptions options;
+    FibManagementOptions options;
     options.setName("/hello");
 
     Block encodedOptions(options.wireEncode());
@@ -545,7 +542,7 @@
            shared_ptr<Face> face,
            const Name& target)
 {
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName(target);
 
   Block encodedOptions(options.wireEncode());
@@ -633,7 +630,7 @@
                   const Name& targetName,
                   FaceId targetFace)
 {
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName(targetName);
   options.setFaceId(targetFace);
 
@@ -702,7 +699,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                           face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
 
@@ -732,7 +729,7 @@
                      bind(&FibManagerFixture::getFace, this, _1),
                      face);
 
-  ndn::FibManagementOptions options;
+  FibManagementOptions options;
   options.setName("/hello");
   options.setFaceId(1);
 
diff --git a/tests/mgmt/manager-base.cpp b/tests/mgmt/manager-base.cpp
index 6105699..feca0da 100644
--- a/tests/mgmt/manager-base.cpp
+++ b/tests/mgmt/manager-base.cpp
@@ -7,8 +7,6 @@
 #include "mgmt/manager-base.hpp"
 #include "mgmt/internal-face.hpp"
 
-#include <ndn-cpp-dev/management/control-response.hpp>
-
 #include <boost/test/unit_test.hpp>
 
 namespace nfd {
@@ -30,7 +28,7 @@
   }
 
   void
-  testSetResponse(ndn::ControlResponse& response,
+  testSetResponse(ControlResponse& response,
                   uint32_t code,
                   const std::string& text)
   {
@@ -47,7 +45,7 @@
 
   void
   testSendResponse(const Name& name,
-                   const ndn::ControlResponse& response)
+                   const ControlResponse& response)
   {
     sendResponse(name, response);
   }
@@ -67,7 +65,7 @@
     m_callbackFired = true;
     Block controlRaw = response.getContent().blockFromValue();
 
-    ndn::ControlResponse control;
+    ControlResponse control;
     control.wireDecode(controlRaw);
 
     NFD_LOG_DEBUG("received control response"
@@ -94,7 +92,7 @@
 
 BOOST_FIXTURE_TEST_CASE(SetResponse, ManagerBaseTest)
 {
-  ndn::ControlResponse response(200, "OK");
+  ControlResponse response(200, "OK");
 
   BOOST_CHECK_EQUAL(response.getCode(), 200);
   BOOST_CHECK_EQUAL(response.getText(), "OK");
@@ -123,7 +121,7 @@
     bind(&ManagerBaseTest::validateControlResponse, this, _1,
          "/response", 100, "test");
 
-  ndn::ControlResponse response(100, "test");
+  ControlResponse response(100, "test");
 
   testSendResponse("/response", 100, "test");
   BOOST_REQUIRE(didCallbackFire());
