diff --git a/tests/unit-tests/bench.t.cpp b/tests/unit-tests/bench.t.cpp
index 226f789..da7e699 100644
--- a/tests/unit-tests/bench.t.cpp
+++ b/tests/unit-tests/bench.t.cpp
@@ -63,7 +63,7 @@
       BOOST_CHECK(security::verifySignature(response, cert));
       auto contentBlock = response.getContent();
       contentBlock.parse();
-      auto caItem = INFO::decodeDataContentToCaProfile(contentBlock);
+      auto caItem = INFO::decodeDataContent(contentBlock);
       BOOST_CHECK_EQUAL(caItem.m_caPrefix, "/ndn");
       BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.size(), 1);
       BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.front(), "full name");
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index 22c0d56..d6a2980 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -68,7 +68,7 @@
     BOOST_CHECK(security::verifySignature(response, cert));
     auto contentBlock = response.getContent();
     contentBlock.parse();
-    auto caItem = INFO::decodeDataContentToCaProfile(contentBlock);
+    auto caItem = INFO::decodeDataContent(contentBlock);
     BOOST_CHECK_EQUAL(caItem.m_caPrefix, "/ndn");
     BOOST_CHECK_EQUAL(caItem.m_probeParameterKeys.size(), 1);
     BOOST_CHECK_EQUAL(caItem.m_cert->wireEncode(), cert.wireEncode());
@@ -480,7 +480,7 @@
   CaModule ca(face, m_keyChain, "tests/unit-tests/config-files/config-ca-1", "ca-storage-memory");
   advanceClocks(time::milliseconds(20), 60);
 
-  //generate a certificate
+  // generate a certificate
   auto clientIdentity = m_keyChain.createIdentity("/ndn/qwerty");
   auto clientKey = clientIdentity.getDefaultKey();
   security::v2::Certificate clientCert;
@@ -501,14 +501,17 @@
 
   auto interest = client.generateRevokeInterest(clientCert);
 
-  int count = 0;
+  bool receiveData = false;
   face.onSendData.connect([&](const Data& response) {
-    count++;
+    receiveData = true;
+    auto contentTlv = response.getContent();
+    contentTlv.parse();
+    BOOST_CHECK(static_cast<ErrorCode>(readNonNegativeInteger(contentTlv.get(tlv_error_code))) != ErrorCode::NO_ERROR);
   });
   face.receive(*interest);
 
   advanceClocks(time::milliseconds(20), 60);
-  BOOST_CHECK_EQUAL(count, 0);
+  BOOST_CHECK_EQUAL(receiveData, true);
 }
 
 BOOST_AUTO_TEST_SUITE_END()  // TestCaModule
diff --git a/tests/unit-tests/configuration.t.cpp b/tests/unit-tests/configuration.t.cpp
index 4f2f256..f1dd87f 100644
--- a/tests/unit-tests/configuration.t.cpp
+++ b/tests/unit-tests/configuration.t.cpp
@@ -128,7 +128,7 @@
   const auto& identity = addIdentity("/test");
   const auto& cert = identity.getDefaultKey().getDefaultCertificate();
   auto encoded = INFO::encodeDataContent(config.m_caItem, cert);
-  auto decoded = INFO::decodeDataContentToCaProfile(encoded);
+  auto decoded = INFO::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);
