diff --git a/tests/unit-tests/configuration.t.cpp b/tests/unit-tests/configuration.t.cpp
index c3086f4..3ba4567 100644
--- a/tests/unit-tests/configuration.t.cpp
+++ b/tests/unit-tests/configuration.t.cpp
@@ -93,9 +93,9 @@
 {
   requester::ProfileStorage profileStorage;
   profileStorage.load("tests/unit-tests/config-files/config-client-1");
-  BOOST_CHECK_EQUAL(profileStorage.m_caItems.size(), 2);
+  BOOST_CHECK_EQUAL(profileStorage.getCaItems().size(), 2);
 
-  auto& profile1 = profileStorage.m_caItems.front();
+  auto& profile1 = profileStorage.getCaItems().front();
   BOOST_CHECK_EQUAL(profile1.m_caPrefix, "/ndn/edu/ucla");
   BOOST_CHECK_EQUAL(profile1.m_caInfo, "ndn testbed ca");
   BOOST_CHECK_EQUAL(profile1.m_maxValidityPeriod, time::seconds(864000));
@@ -105,7 +105,7 @@
   BOOST_CHECK_EQUAL(profile1.m_cert->getName(),
                     "/ndn/site1/KEY/%11%BC%22%F4c%15%FF%17/self/%FD%00%00%01Y%C8%14%D9%A5");
 
-  auto& profile2 = profileStorage.m_caItems.back();
+  auto& profile2 = profileStorage.getCaItems().back();
   BOOST_CHECK_EQUAL(profile2.m_caPrefix, "/ndn/edu/ucla/zhiyi");
   BOOST_CHECK_EQUAL(profile2.m_caInfo, "");
   BOOST_CHECK_EQUAL(profile2.m_maxValidityPeriod, time::seconds(86400));
@@ -135,14 +135,14 @@
   item.m_caPrefix = Name("/test");
   item.m_caInfo = "test";
 
-  profileStorage.m_caItems.push_back(item);
-  BOOST_CHECK_EQUAL(profileStorage.m_caItems.size(), 3);
-  auto lastItem = profileStorage.m_caItems.back();
+  profileStorage.addCaProfile(item);
+  BOOST_CHECK_EQUAL(profileStorage.getCaItems().size(), 3);
+  auto lastItem = profileStorage.getCaItems().back();
   BOOST_CHECK_EQUAL(lastItem.m_caPrefix, "/test");
 
   profileStorage.removeCaProfile(Name("/test"));
-  BOOST_CHECK_EQUAL(profileStorage.m_caItems.size(), 2);
-  lastItem = profileStorage.m_caItems.back();
+  BOOST_CHECK_EQUAL(profileStorage.getCaItems().size(), 2);
+  lastItem = profileStorage.getCaItems().back();
   BOOST_CHECK_EQUAL(lastItem.m_caPrefix, "/ndn/edu/ucla/zhiyi");
 }
 
diff --git a/tests/unit-tests/protocol-encoders.t.cpp b/tests/unit-tests/protocol-encoders.t.cpp
index 56add32..532049b 100644
--- a/tests/unit-tests/protocol-encoders.t.cpp
+++ b/tests/unit-tests/protocol-encoders.t.cpp
@@ -40,7 +40,7 @@
 
   requester::ProfileStorage caCache;
   caCache.load("tests/unit-tests/config-files/config-client-1");
-  auto& cert = caCache.m_caItems.front().m_cert;
+  auto& cert = caCache.getCaItems().front().m_cert;
 
   auto b = infoEncoder::encodeDataContent(config.m_caItem, *cert);
   auto item = infoEncoder::decodeDataContent(b);
@@ -106,7 +106,7 @@
 {
   requester::ProfileStorage caCache;
   caCache.load("tests/unit-tests/config-files/config-client-1");
-  auto& certRequest = caCache.m_caItems.front().m_cert;
+  auto& certRequest = caCache.getCaItems().front().m_cert;
   std::vector<uint8_t> pub = ECDHState().getSelfPubKey();
   auto b = newRenewRevokeEncoder::encodeApplicationParameters(RequestType::REVOKE, pub, *certRequest);
   std::vector<uint8_t> returnedPub;
@@ -147,7 +147,7 @@
                          0xe0, 0xff, 0x56, 0x83, 0xf2, 0x43, 0xb2, 0x13};
   requester::ProfileStorage caCache;
   caCache.load("tests/unit-tests/config-files/config-client-1");
-  security::Certificate certRequest = *caCache.m_caItems.front().m_cert;
+  security::Certificate certRequest = *caCache.getCaItems().front().m_cert;
   RequestId id = {102};
   std::array<uint8_t, 16> aesKey;
   std::memcpy(aesKey.data(), key, sizeof(key));
@@ -156,7 +156,7 @@
                          std::move(aesKey), 0);
   auto contentBlock = challengeEncoder::encodeDataContent(state, Name("/ndn/ucla/a/b/c"));
 
-  requester::RequestState context(m_keyChain, caCache.m_caItems.front(), RequestType::NEW);
+  requester::RequestState context(m_keyChain, caCache.getCaItems().front(), RequestType::NEW);
   context.m_requestId = id;
   std::memcpy(context.m_aesKey.data(), key, sizeof(key));
   challengeEncoder::decodeDataContent(contentBlock, context);
