diff --git a/tests/unit-tests/mgmt/dispatcher.t.cpp b/tests/unit-tests/mgmt/dispatcher.t.cpp
index d7e4efc..877ec02 100644
--- a/tests/unit-tests/mgmt/dispatcher.t.cpp
+++ b/tests/unit-tests/mgmt/dispatcher.t.cpp
@@ -20,7 +20,7 @@
  */
 
 #include "mgmt/dispatcher.hpp"
-#include "management/nfd-control-parameters.hpp"
+#include "mgmt/nfd/control-parameters.hpp"
 #include "util/dummy-client-face.hpp"
 
 #include "boost-test.hpp"
diff --git a/tests/unit-tests/management/nfd-channel-status.t.cpp b/tests/unit-tests/mgmt/nfd/channel-status.t.cpp
similarity index 85%
rename from tests/unit-tests/management/nfd-channel-status.t.cpp
rename to tests/unit-tests/mgmt/nfd/channel-status.t.cpp
index 7fff8d4..c682f59 100644
--- a/tests/unit-tests/management/nfd-channel-status.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/channel-status.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-channel-status.hpp"
+#include "mgmt/nfd/channel-status.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdChannelStatus)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestChannelStatus)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -56,7 +58,9 @@
   BOOST_CHECK_EQUAL(status1.getLocalUri(), status2.getLocalUri());
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestChannelStatus
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-command-options.t.cpp b/tests/unit-tests/mgmt/nfd/command-options.t.cpp
similarity index 88%
rename from tests/unit-tests/management/nfd-command-options.t.cpp
rename to tests/unit-tests/mgmt/nfd/command-options.t.cpp
index 4cccc95..470cac9 100644
--- a/tests/unit-tests/management/nfd-command-options.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/command-options.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-command-options.hpp"
+#include "mgmt/nfd/command-options.hpp"
 #include "security/signing-helpers.hpp"
 
 #include "boost-test.hpp"
@@ -28,7 +28,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdCommandOptions)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestCommandOptions)
 
 BOOST_AUTO_TEST_CASE(Timeout)
 {
@@ -68,7 +70,9 @@
   BOOST_CHECK_EQUAL(co.getSigningInfo().getSignerName(), "ndn:/tmp/identity");
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestCommandOptions
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-control-command.t.cpp b/tests/unit-tests/mgmt/nfd/control-command.t.cpp
similarity index 97%
rename from tests/unit-tests/management/nfd-control-command.t.cpp
rename to tests/unit-tests/mgmt/nfd/control-command.t.cpp
index 4601de6..d282acf 100644
--- a/tests/unit-tests/management/nfd-control-command.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/control-command.t.cpp
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-control-command.hpp"
+#include "mgmt/nfd/control-command.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdControlCommand)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestControlCommand)
 
 BOOST_AUTO_TEST_CASE(FaceCreate)
 {
@@ -370,7 +372,9 @@
   BOOST_CHECK_THROW(command.validateResponse(p2), ControlCommand::ArgumentError);
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestControlCommand
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-control-parameters.t.cpp b/tests/unit-tests/mgmt/nfd/control-parameters.t.cpp
similarity index 96%
rename from tests/unit-tests/management/nfd-control-parameters.t.cpp
rename to tests/unit-tests/mgmt/nfd/control-parameters.t.cpp
index e12d675..7ef364e 100644
--- a/tests/unit-tests/management/nfd-control-parameters.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/control-parameters.t.cpp
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-control-parameters.hpp"
+#include "mgmt/nfd/control-parameters.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdControlParameters)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestControlParameters)
 
 BOOST_AUTO_TEST_CASE(FaceOptions)
 {
@@ -265,7 +267,9 @@
   BOOST_CHECK_THROW(p.unsetFlagBit(64), std::out_of_range);
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestControlParameters
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-control-response.t.cpp b/tests/unit-tests/mgmt/nfd/control-response.t.cpp
similarity index 86%
rename from tests/unit-tests/management/nfd-control-response.t.cpp
rename to tests/unit-tests/mgmt/nfd/control-response.t.cpp
index 9ce5dcb..58fc3bc 100644
--- a/tests/unit-tests/management/nfd-control-response.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/control-response.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-control-response.hpp"
+#include "mgmt/nfd/control-response.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdControlResponse)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestControlResponse)
 
 const uint8_t TestControlResponse[] = {0x65, 0x17,
                                        0x66, 0x02, 0x01, 0x94, 0x67, 0x11, 0x4e, 0x6f, 0x74,
@@ -57,7 +59,9 @@
   BOOST_REQUIRE_EQUAL(controlResponse.getText(), "Nothing not found");
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestControlResponse
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-controller-fixture.hpp b/tests/unit-tests/mgmt/nfd/controller-fixture.hpp
similarity index 89%
rename from tests/unit-tests/management/nfd-controller-fixture.hpp
rename to tests/unit-tests/mgmt/nfd/controller-fixture.hpp
index d722dda..76e7bde 100644
--- a/tests/unit-tests/management/nfd-controller-fixture.hpp
+++ b/tests/unit-tests/mgmt/nfd/controller-fixture.hpp
@@ -19,15 +19,15 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#ifndef NDN_TESTS_MANAGEMENT_NFD_CONTROLLER_FIXTURE_HPP
-#define NDN_TESTS_MANAGEMENT_NFD_CONTROLLER_FIXTURE_HPP
+#ifndef NDN_TESTS_MGMT_NFD_CONTROLLER_FIXTURE_HPP
+#define NDN_TESTS_MGMT_NFD_CONTROLLER_FIXTURE_HPP
 
-#include "management/nfd-controller.hpp"
-#include "../../dummy-validator.hpp"
+#include "mgmt/nfd/controller.hpp"
+#include "../../../dummy-validator.hpp"
 
 #include "boost-test.hpp"
 #include "util/dummy-client-face.hpp"
-#include "../identity-management-time-fixture.hpp"
+#include "../../identity-management-time-fixture.hpp"
 
 namespace ndn {
 namespace nfd {
@@ -92,4 +92,4 @@
 } // namespace nfd
 } // namespace ndn
 
-#endif // NDN_TESTS_MANAGEMENT_NFD_CONTROLLER_FIXTURE_HPP
+#endif // NDN_TESTS_MGMT_NFD_CONTROLLER_FIXTURE_HPP
diff --git a/tests/unit-tests/management/nfd-controller.t.cpp b/tests/unit-tests/mgmt/nfd/controller.t.cpp
similarity index 95%
rename from tests/unit-tests/management/nfd-controller.t.cpp
rename to tests/unit-tests/mgmt/nfd/controller.t.cpp
index 13031fb..4d6b8a2 100644
--- a/tests/unit-tests/management/nfd-controller.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/controller.t.cpp
@@ -19,13 +19,13 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-controller.hpp"
-#include "management/nfd-control-response.hpp"
+#include "mgmt/nfd/controller.hpp"
+#include "mgmt/nfd/control-response.hpp"
 
 #include <boost/tuple/tuple.hpp>
 
-#include "nfd-controller-fixture.hpp"
-#include "../make-interest-data.hpp"
+#include "controller-fixture.hpp"
+#include "../../make-interest-data.hpp"
 
 namespace ndn {
 namespace nfd {
@@ -33,7 +33,8 @@
 
 using namespace ndn::tests;
 
-BOOST_AUTO_TEST_SUITE(Management)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
 
 class CommandFixture : public ControllerFixture
 {
@@ -58,7 +59,7 @@
 // This test suite focuses on ControlCommand functionality of Controller.
 // Individual commands are tested in nfd-control-command.t.cpp
 // StatusDataset functionality is tested in nfd-status-dataset.t.cpp
-BOOST_FIXTURE_TEST_SUITE(TestNfdController, CommandFixture)
+BOOST_FIXTURE_TEST_SUITE(TestController, CommandFixture)
 
 BOOST_AUTO_TEST_CASE(Success)
 {
@@ -295,8 +296,9 @@
   BOOST_CHECK_EQUAL(succeeds.size(), 0);
 }
 
-BOOST_AUTO_TEST_SUITE_END() // TestNfdController
-BOOST_AUTO_TEST_SUITE_END() // Management
+BOOST_AUTO_TEST_SUITE_END() // TestController
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-face-event-notification.t.cpp b/tests/unit-tests/mgmt/nfd/face-event-notification.t.cpp
similarity index 95%
rename from tests/unit-tests/management/nfd-face-event-notification.t.cpp
rename to tests/unit-tests/mgmt/nfd/face-event-notification.t.cpp
index 0fce21b..7def221 100644
--- a/tests/unit-tests/management/nfd-face-event-notification.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/face-event-notification.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-face-event-notification.hpp"
+#include "mgmt/nfd/face-event-notification.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdFaceEventNotification)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestFaceEventNotification)
 
 BOOST_AUTO_TEST_CASE(Traits)
 {
@@ -162,7 +164,9 @@
                               "LinkType: multi-access)");
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestFaceEventNotification
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-face-query-filter.t.cpp b/tests/unit-tests/mgmt/nfd/face-query-filter.t.cpp
similarity index 91%
rename from tests/unit-tests/management/nfd-face-query-filter.t.cpp
rename to tests/unit-tests/mgmt/nfd/face-query-filter.t.cpp
index 845e314..3871ce0 100644
--- a/tests/unit-tests/management/nfd-face-query-filter.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/face-query-filter.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-face-query-filter.hpp"
+#include "mgmt/nfd/face-query-filter.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdFaceQueryFilter)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestFaceQueryFilter)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -92,7 +94,9 @@
                               ")");
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestFaceQueryFilter
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-face-status.t.cpp b/tests/unit-tests/mgmt/nfd/face-status.t.cpp
similarity index 93%
rename from tests/unit-tests/management/nfd-face-status.t.cpp
rename to tests/unit-tests/mgmt/nfd/face-status.t.cpp
index 8afb0cc..c8a97f3 100644
--- a/tests/unit-tests/management/nfd-face-status.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/face-status.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-face-status.hpp"
+#include "mgmt/nfd/face-status.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdFaceStatus)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestFaceStatus)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -104,7 +106,9 @@
                               ")");
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestFaceStatus
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-fib-entry.t.cpp b/tests/unit-tests/mgmt/nfd/fib-entry.t.cpp
similarity index 93%
rename from tests/unit-tests/management/nfd-fib-entry.t.cpp
rename to tests/unit-tests/mgmt/nfd/fib-entry.t.cpp
index 05459f3..7723974 100644
--- a/tests/unit-tests/management/nfd-fib-entry.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/fib-entry.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-fib-entry.hpp"
+#include "mgmt/nfd/fib-entry.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdFibEntry)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestFibEntry)
 
 const uint8_t TestNextHopRecord[] =
 {
@@ -149,7 +151,9 @@
     }
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestFibEntry
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-forwarder-status.t.cpp b/tests/unit-tests/mgmt/nfd/forwarder-status.t.cpp
similarity index 92%
rename from tests/unit-tests/management/nfd-forwarder-status.t.cpp
rename to tests/unit-tests/mgmt/nfd/forwarder-status.t.cpp
index 6adc1d9..b7aefa0f 100644
--- a/tests/unit-tests/management/nfd-forwarder-status.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/forwarder-status.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-forwarder-status.hpp"
+#include "mgmt/nfd/forwarder-status.hpp"
 #include "data.hpp"
 
 #include "boost-test.hpp"
@@ -28,7 +28,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdForwarderStatus)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestForwarderStatus)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -91,7 +93,9 @@
   BOOST_CHECK_EQUAL(status1.getNOutNacks(), status2.getNOutNacks());
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestForwarderStatus
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-rib-entry.t.cpp b/tests/unit-tests/mgmt/nfd/rib-entry.t.cpp
similarity index 96%
rename from tests/unit-tests/management/nfd-rib-entry.t.cpp
rename to tests/unit-tests/mgmt/nfd/rib-entry.t.cpp
index 4018386..415be29 100644
--- a/tests/unit-tests/management/nfd-rib-entry.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/rib-entry.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,8 +19,8 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-rib-entry.hpp"
-#include "management/nfd-control-command.hpp"
+#include "mgmt/nfd/rib-entry.hpp"
+#include "mgmt/nfd/control-command.hpp"
 
 #include "boost-test.hpp"
 
@@ -28,7 +28,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdRibEntry)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestRibEntry)
 
 const uint8_t RouteData[] =
 {
@@ -336,7 +338,9 @@
                               "}");
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestRibEntry
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-status-dataset.t.cpp b/tests/unit-tests/mgmt/nfd/status-dataset.t.cpp
similarity index 96%
rename from tests/unit-tests/management/nfd-status-dataset.t.cpp
rename to tests/unit-tests/mgmt/nfd/status-dataset.t.cpp
index e2f62a3..aadb2c4 100644
--- a/tests/unit-tests/management/nfd-status-dataset.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/status-dataset.t.cpp
@@ -19,11 +19,11 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-status-dataset.hpp"
-#include "management/nfd-controller.hpp"
+#include "mgmt/nfd/status-dataset.hpp"
+#include "mgmt/nfd/controller.hpp"
 
-#include "nfd-controller-fixture.hpp"
-#include "../make-interest-data.hpp"
+#include "controller-fixture.hpp"
+#include "../../make-interest-data.hpp"
 
 namespace ndn {
 namespace nfd {
@@ -31,7 +31,8 @@
 
 using namespace ndn::tests;
 
-BOOST_AUTO_TEST_SUITE(Management)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
 
 class ControllerStatusDatasetFixture : public ControllerFixture
 {
@@ -102,7 +103,7 @@
   }
 };
 
-BOOST_FIXTURE_TEST_SUITE(TestNfdStatusDataset, ControllerStatusDatasetFixture)
+BOOST_FIXTURE_TEST_SUITE(TestStatusDataset, ControllerStatusDatasetFixture)
 
 BOOST_AUTO_TEST_SUITE(Failures)
 
@@ -449,8 +450,9 @@
 
 BOOST_AUTO_TEST_SUITE_END() // Datasets
 
-BOOST_AUTO_TEST_SUITE_END() // TestNfdStatusDataset
-BOOST_AUTO_TEST_SUITE_END() // Management
+BOOST_AUTO_TEST_SUITE_END() // TestStatusDataset
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/unit-tests/management/nfd-strategy-choice.t.cpp b/tests/unit-tests/mgmt/nfd/strategy-choice.t.cpp
similarity index 87%
rename from tests/unit-tests/management/nfd-strategy-choice.t.cpp
rename to tests/unit-tests/mgmt/nfd/strategy-choice.t.cpp
index 38290fa..4fca737 100644
--- a/tests/unit-tests/management/nfd-strategy-choice.t.cpp
+++ b/tests/unit-tests/mgmt/nfd/strategy-choice.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2016 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "management/nfd-strategy-choice.hpp"
+#include "mgmt/nfd/strategy-choice.hpp"
 
 #include "boost-test.hpp"
 
@@ -27,7 +27,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementNfdStrategyChoice)
+BOOST_AUTO_TEST_SUITE(Mgmt)
+BOOST_AUTO_TEST_SUITE(Nfd)
+BOOST_AUTO_TEST_SUITE(TestStrategyChoice)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -61,7 +63,9 @@
   BOOST_CHECK_EQUAL(strategyChoice1.getStrategy(), strategyChoice2.getStrategy());
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestStrategyChoice
+BOOST_AUTO_TEST_SUITE_END() // Nfd
+BOOST_AUTO_TEST_SUITE_END() // Mgmt
 
 } // namespace tests
 } // namespace nfd
