diff --git a/tests/unit/database-test-data.cpp b/tests/unit/database-test-data.cpp
index 93815ec..ea55948 100644
--- a/tests/unit/database-test-data.cpp
+++ b/tests/unit/database-test-data.cpp
@@ -96,7 +96,7 @@
     const name::Component version = name::Component::fromVersion(100 + 1000 * certificateIndex);
     name::Component qType(label::NDNS_ITERATIVE_QUERY);
     NdnsContentType contentType = NDNS_RESP;
-    if (type == label::CERT_RR_TYPE) {
+    if (type == label::APPCERT_RR_TYPE) {
       contentType = NDNS_KEY;
     }
     else if (type == label::NS_RR_TYPE) {
@@ -139,18 +139,18 @@
   if (type == label::NS_RR_TYPE) {
     ndn::DelegationList ds;
     ds.insert(1, "xx");
-    rrset = rf.generateNsRrset(label, type, version.toVersion(), ttl, ds);
+    rrset = rf.generateNsRrset(label, version.toVersion(), ttl, ds);
     if (contentType != NDNS_AUTH) {
       // do not add AUTH packet to link
       m_links.push_back(Link(rrset.getData()));
     }
   }
   else if (type == label::TXT_RR_TYPE) {
-    rrset = rf.generateTxtRrset(label, type, version.toVersion(), ttl,
+    rrset = rf.generateTxtRrset(label, version.toVersion(), ttl,
                                 std::vector<std::string>());
   }
-  else if (type == label::CERT_RR_TYPE) {
-    rrset = rf.generateCertRrset(label, type, version.toVersion(), ttl,
+  else if (type == label::APPCERT_RR_TYPE) {
+    rrset = rf.generateCertRrset(label, version.toVersion(), ttl,
                                  m_cert);
   }
 
