diff --git a/tests/unit-tests/protocol-detail.t.cpp b/tests/unit-tests/protocol-detail.t.cpp
index a10b54b..6157d61 100644
--- a/tests/unit-tests/protocol-detail.t.cpp
+++ b/tests/unit-tests/protocol-detail.t.cpp
@@ -18,10 +18,10 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "protocol-detail/info.hpp"
-#include "protocol-detail/probe.hpp"
-#include "protocol-detail/new-renew-revoke.hpp"
-#include "protocol-detail/challenge.hpp"
+#include "detail/info-encoder.hpp"
+#include "detail/probe-encoder.hpp"
+#include "detail/new-renew-revoke-encoder.hpp"
+#include "detail/challenge-encoder.hpp"
 #include "test-common.hpp"
 
 namespace ndn {
@@ -37,8 +37,8 @@
 
   const auto& identity = addIdentity("/test");
   const auto& cert = identity.getDefaultKey().getDefaultCertificate();
-  auto encoded = INFO::encodeDataContent(config.m_caItem, cert);
-  auto decoded = INFO::decodeDataContent(encoded);
+  auto encoded = InfoEncoder::encodeDataContent(config.m_caItem, cert);
+  auto decoded = InfoEncoder::decodeDataContent(encoded);
   BOOST_CHECK_EQUAL(config.m_caItem.m_caPrefix, decoded.m_caPrefix);
   BOOST_CHECK_EQUAL(config.m_caItem.m_caInfo, decoded.m_caInfo);
   BOOST_CHECK_EQUAL(config.m_caItem.m_maxValidityPeriod, decoded.m_maxValidityPeriod);
@@ -51,8 +51,8 @@
 {
   std::vector<std::tuple<std::string, std::string>> parameters;
   parameters.push_back(std::make_tuple("email", "zhiyi@cs.ucla.edu"));
-  auto appParametersTlv = PROBE::encodeApplicationParameters(std::move(parameters));
-  auto decodedParameters = PROBE::decodeApplicationParameters(appParametersTlv);
+  auto appParametersTlv = ProbeEncoder::encodeApplicationParameters(std::move(parameters));
+  auto decodedParameters = ProbeEncoder::decodeApplicationParameters(appParametersTlv);
   BOOST_CHECK_EQUAL(std::get<0>(decodedParameters[0]), "email");
   BOOST_CHECK_EQUAL(std::get<1>(decodedParameters[0]), "zhiyi@cs.ucla.edu");
   BOOST_CHECK_EQUAL(decodedParameters.size(), 1);
@@ -61,10 +61,10 @@
   config.load("tests/unit-tests/config-files/config-ca-5");
   std::vector<Name> ids;
   ids.push_back(Name("/example"));
-  auto contentTlv = PROBE::encodeDataContent(ids, 2, config.m_redirection);
+  auto contentTlv = ProbeEncoder::encodeDataContent(ids, 2, config.m_redirection);
   std::vector<Name> decodedRedirectionItems;
   std::vector<std::pair<Name, int>> decodedIds;
-  PROBE::decodeDataContent(contentTlv, decodedIds, decodedRedirectionItems);
+  ProbeEncoder::decodeDataContent(contentTlv, decodedIds, decodedRedirectionItems);
   BOOST_CHECK_EQUAL(decodedIds[0].first, Name("/example"));
   BOOST_CHECK_EQUAL(decodedIds[0].second, 2);
   BOOST_CHECK_EQUAL(decodedRedirectionItems[0], config.m_redirection->at(0)->getFullName());
