]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Use unique_ptr to backend in remotebackend tests
authorFred Morcos <fred.morcos@open-xchange.com>
Mon, 30 Oct 2023 11:51:52 +0000 (12:51 +0100)
committerFred Morcos <fred.morcos@open-xchange.com>
Mon, 30 Oct 2023 15:24:30 +0000 (16:24 +0100)
modules/remotebackend/test-remotebackend-http.cc
modules/remotebackend/test-remotebackend-json.cc
modules/remotebackend/test-remotebackend-pipe.cc
modules/remotebackend/test-remotebackend-post.cc
modules/remotebackend/test-remotebackend-unix.cc
modules/remotebackend/test-remotebackend-zeromq.cc
modules/remotebackend/test-remotebackend.cc

index 3123752b8a22f985915d52ee702e6accc981d59d..d7b967009a5a53cb551993a3bb54a7aad9abc9e0 100644 (file)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
+#include <memory>
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -52,7 +53,7 @@ public:
   RemoteLoader();
 };
 
-DNSBackend* be;
+std::unique_ptr<DNSBackend> backendUnderTest;
 
 #define BOOST_TEST_DYN_LINK
 #define BOOST_TEST_MAIN
@@ -67,7 +68,7 @@ struct RemotebackendSetup
 {
   RemotebackendSetup()
   {
-    be = nullptr;
+    backendUnderTest = nullptr;
     try {
       // setup minimum arguments
       ::arg().set("module-dir") = "./.libs";
@@ -76,7 +77,7 @@ struct RemotebackendSetup
       // then get us a instance of it
       ::arg().set("remote-connection-string") = "http:url=http://localhost:62434/dns";
       ::arg().set("remote-dnssec") = "yes";
-      be = BackendMakers().all()[0].get();
+      backendUnderTest = std::move(BackendMakers().all()[0]);
     }
     catch (PDNSException& ex) {
       BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason);
index 6a47b772c9a0baa4f32eae8d19df4c607c3a7cd8..7291d45e459e2ec500eb43f8d392a65656808fe9 100644 (file)
@@ -51,7 +51,7 @@ public:
   RemoteLoader();
 };
 
-DNSBackend* be;
+std::unique_ptr<DNSBackend> backendUnderTest;
 
 #define BOOST_TEST_DYN_LINK
 #define BOOST_TEST_MAIN
@@ -66,7 +66,7 @@ struct RemotebackendSetup
 {
   RemotebackendSetup()
   {
-    be = nullptr;
+    backendUnderTest = nullptr;
     try {
       // setup minimum arguments
       ::arg().set("module-dir") = "./.libs";
@@ -75,7 +75,7 @@ struct RemotebackendSetup
       // then get us a instance of it
       ::arg().set("remote-connection-string") = "http:url=http://localhost:62434/dns/endpoint.json,post=1,post_json=1";
       ::arg().set("remote-dnssec") = "yes";
-      be = BackendMakers().all()[0].get();
+      backendUnderTest = std::move(BackendMakers().all()[0]);
     }
     catch (PDNSException& ex) {
       BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason);
index 15ca1571e87c270e53e997554766d6c4603693b1..c643533d461e474185e7d1ee27aaf99b4eb57ded 100644 (file)
@@ -60,13 +60,13 @@ public:
   RemoteLoader();
 };
 
-DNSBackend* be;
+std::unique_ptr<DNSBackend> backendUnderTest;
 
 struct RemotebackendSetup
 {
   RemotebackendSetup()
   {
-    be = nullptr;
+    backendUnderTest = nullptr;
     try {
       // setup minimum arguments
       ::arg().set("module-dir") = "./.libs";
@@ -75,7 +75,7 @@ struct RemotebackendSetup
       // then get us a instance of it
       ::arg().set("remote-connection-string") = "pipe:command=unittest_pipe.rb";
       ::arg().set("remote-dnssec") = "yes";
-      be = BackendMakers().all()[0].get();
+      backendUnderTest = std::move(BackendMakers().all()[0]);
       // load few record types to help out
       SOARecordContent::report();
       NSRecordContent::report();
index d35baa00ae2d449cc93f21e396a136add950bd14..fcae528e377735d32910c4ade56959e9143301de 100644 (file)
@@ -51,7 +51,7 @@ public:
   RemoteLoader();
 };
 
-DNSBackend* be;
+std::unique_ptr<DNSBackend> backendUnderTest;
 
 #define BOOST_TEST_DYN_LINK
 #define BOOST_TEST_MAIN
@@ -66,7 +66,7 @@ struct RemotebackendSetup
 {
   RemotebackendSetup()
   {
-    be = nullptr;
+    backendUnderTest = nullptr;
     try {
       // setup minimum arguments
       ::arg().set("module-dir") = "./.libs";
@@ -75,7 +75,7 @@ struct RemotebackendSetup
       // then get us a instance of it
       ::arg().set("remote-connection-string") = "http:url=http://localhost:62434/dns,post=1";
       ::arg().set("remote-dnssec") = "yes";
-      be = BackendMakers().all()[0].get();
+      backendUnderTest = std::move(BackendMakers().all()[0]);
     }
     catch (PDNSException& ex) {
       BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason);
index 7d20a2ad32e6b6f0d738d9a5e11c3cd0ca71a9db..5c16564e3e440e92035ce212eba3b7c212cb14d9 100644 (file)
@@ -60,13 +60,13 @@ public:
   RemoteLoader();
 };
 
-DNSBackend* be;
+std::unique_ptr<DNSBackend> backendUnderTest;
 
 struct RemotebackendSetup
 {
   RemotebackendSetup()
   {
-    be = nullptr;
+    backendUnderTest = nullptr;
     try {
       // setup minimum arguments
       ::arg().set("module-dir") = "./.libs";
@@ -75,7 +75,7 @@ struct RemotebackendSetup
       // then get us a instance of it
       ::arg().set("remote-connection-string") = "unix:path=/tmp/remotebackend.sock";
       ::arg().set("remote-dnssec") = "yes";
-      be = BackendMakers().all()[0].get();
+      backendUnderTest = std::move(BackendMakers().all()[0]);
       // load few record types to help out
       SOARecordContent::report();
       NSRecordContent::report();
index 5244a6dab81cc38130c7b86177aa87eda206da13..e7f65cda1d0de8aaab5a97fe3e301cf8fc6a64a5 100644 (file)
@@ -59,7 +59,7 @@ public:
   RemoteLoader();
 };
 
-DNSBackend* be;
+std::unique_ptr<DNSBackend> backendUnderTest;
 
 #ifdef REMOTEBACKEND_ZEROMQ
 #include <boost/test/unit_test.hpp>
@@ -68,7 +68,7 @@ struct RemotebackendSetup
 {
   RemotebackendSetup()
   {
-    be = nullptr;
+    backendUnderTest = nullptr;
     try {
       // setup minimum arguments
       ::arg().set("module-dir") = "./.libs";
@@ -77,7 +77,7 @@ struct RemotebackendSetup
       // then get us a instance of it
       ::arg().set("remote-connection-string") = "zeromq:endpoint=ipc:///tmp/remotebackend.0";
       ::arg().set("remote-dnssec") = "yes";
-      be = BackendMakers().all()[0].get();
+      backendUnderTest = std::move(BackendMakers().all()[0]);
       // load few record types to help out
       SOARecordContent::report();
       NSRecordContent::report();
index e4a43208bf9ddad6d495ae37a4c75cb99afadfff..c5817862ba86cd6b53a830cbe89a84c416e4b76d 100644 (file)
 
 #include "test-remotebackend-keys.hh"
 
-extern DNSBackend* be;
+extern std::unique_ptr<DNSBackend> backendUnderTest;
 
 BOOST_AUTO_TEST_SUITE(test_remotebackend_so)
 
 BOOST_AUTO_TEST_CASE(test_method_lookup)
 {
   BOOST_TEST_MESSAGE("Testing lookup method");
-  DNSResourceRecord rr;
-  be->lookup(QType(QType::SOA), DNSName("unit.test."));
+  DNSResourceRecord resourceRecord;
+  backendUnderTest->lookup(QType(QType::SOA), DNSName("unit.test."));
   // then try to get()
-  BOOST_CHECK(be->get(rr)); // and this should be TRUE.
+  BOOST_CHECK(backendUnderTest->get(resourceRecord)); // and this should be TRUE.
   // then we check rr contains what we expect
-  BOOST_CHECK_EQUAL(rr.qname.toString(), "unit.test.");
-  BOOST_CHECK_MESSAGE(rr.qtype == QType::SOA, "returned qtype was not SOA");
-  BOOST_CHECK_EQUAL(rr.content, "ns.unit.test. hostmaster.unit.test. 1 2 3 4 5");
-  BOOST_CHECK_EQUAL(rr.ttl, 300);
+  BOOST_CHECK_EQUAL(resourceRecord.qname.toString(), "unit.test.");
+  BOOST_CHECK_MESSAGE(resourceRecord.qtype == QType::SOA, "returned qtype was not SOA");
+  BOOST_CHECK_EQUAL(resourceRecord.content, "ns.unit.test. hostmaster.unit.test. 1 2 3 4 5");
+  BOOST_CHECK_EQUAL(resourceRecord.ttl, 300);
 }
 
 BOOST_AUTO_TEST_CASE(test_method_lookup_empty)
 {
   BOOST_TEST_MESSAGE("Testing lookup method with empty result");
-  DNSResourceRecord rr;
-  be->lookup(QType(QType::SOA), DNSName("empty.unit.test."));
+  DNSResourceRecord resourceRecord;
+  backendUnderTest->lookup(QType(QType::SOA), DNSName("empty.unit.test."));
   // then try to get()
-  BOOST_CHECK(!be->get(rr)); // and this should be FALSE
+  BOOST_CHECK(!backendUnderTest->get(resourceRecord)); // and this should be FALSE
 }
 
 BOOST_AUTO_TEST_CASE(test_method_list)
 {
   int record_count = 0;
-  DNSResourceRecord rr;
+  DNSResourceRecord resourceRecord;
 
   BOOST_TEST_MESSAGE("Testing list method");
-  be->list(DNSName("unit.test."), -1);
-  while (be->get(rr)) {
+  backendUnderTest->list(DNSName("unit.test."), -1);
+  while (backendUnderTest->get(resourceRecord)) {
     record_count++;
   }
 
@@ -85,7 +85,7 @@ BOOST_AUTO_TEST_CASE(test_method_list)
 BOOST_AUTO_TEST_CASE(test_method_doesDNSSEC)
 {
   BOOST_TEST_MESSAGE("Testing doesDNSSEC method");
-  BOOST_CHECK(be->doesDNSSEC()); // should be true
+  BOOST_CHECK(backendUnderTest->doesDNSSEC()); // should be true
 }
 
 BOOST_AUTO_TEST_CASE(test_method_setDomainMetadata)
@@ -93,27 +93,27 @@ BOOST_AUTO_TEST_CASE(test_method_setDomainMetadata)
   std::vector<std::string> meta;
   meta.emplace_back("VALUE");
   BOOST_TEST_MESSAGE("Testing setDomainMetadata method");
-  BOOST_CHECK(be->setDomainMetadata(DNSName("unit.test."), "TEST", meta));
+  BOOST_CHECK(backendUnderTest->setDomainMetadata(DNSName("unit.test."), "TEST", meta));
 }
 
 BOOST_AUTO_TEST_CASE(test_method_alsoNotifies)
 {
-  BOOST_CHECK(be->setDomainMetadata(DNSName("unit.test."), "ALSO-NOTIFY", {"192.0.2.1"}));
+  BOOST_CHECK(backendUnderTest->setDomainMetadata(DNSName("unit.test."), "ALSO-NOTIFY", {"192.0.2.1"}));
   std::set<std::string> alsoNotifies;
   BOOST_TEST_MESSAGE("Testing alsoNotifies method");
-  be->alsoNotifies(DNSName("unit.test."), &alsoNotifies);
+  backendUnderTest->alsoNotifies(DNSName("unit.test."), &alsoNotifies);
   BOOST_CHECK_EQUAL(alsoNotifies.size(), 1);
   if (!alsoNotifies.empty()) {
     BOOST_CHECK_EQUAL(alsoNotifies.count("192.0.2.1"), 1);
   }
-  BOOST_CHECK(be->setDomainMetadata(DNSName("unit.test."), "ALSO-NOTIFY", std::vector<std::string>()));
+  BOOST_CHECK(backendUnderTest->setDomainMetadata(DNSName("unit.test."), "ALSO-NOTIFY", std::vector<std::string>()));
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getDomainMetadata)
 {
   std::vector<std::string> meta;
   BOOST_TEST_MESSAGE("Testing getDomainMetadata method");
-  be->getDomainMetadata(DNSName("unit.test."), "TEST", meta);
+  backendUnderTest->getDomainMetadata(DNSName("unit.test."), "TEST", meta);
   BOOST_CHECK_EQUAL(meta.size(), 1);
   // in case we got more than one value, which would be unexpected
   // but not fatal
@@ -126,7 +126,7 @@ BOOST_AUTO_TEST_CASE(test_method_getAllDomainMetadata)
 {
   std::map<std::string, std::vector<std::string>> meta;
   BOOST_TEST_MESSAGE("Testing getAllDomainMetadata method");
-  be->getAllDomainMetadata(DNSName("unit.test."), meta);
+  backendUnderTest->getAllDomainMetadata(DNSName("unit.test."), meta);
   BOOST_CHECK_EQUAL(meta.size(), 1);
   // in case we got more than one value, which would be unexpected
   // but not fatal
@@ -138,11 +138,11 @@ BOOST_AUTO_TEST_CASE(test_method_getAllDomainMetadata)
 BOOST_AUTO_TEST_CASE(test_method_addDomainKey)
 {
   BOOST_TEST_MESSAGE("Testing addDomainKey method");
-  int64_t id = 0;
-  be->addDomainKey(DNSName("unit.test."), k1, id);
-  BOOST_CHECK_EQUAL(id, 1);
-  be->addDomainKey(DNSName("unit.test."), k2, id);
-  BOOST_CHECK_EQUAL(id, 2);
+  int64_t keyID = 0;
+  backendUnderTest->addDomainKey(DNSName("unit.test."), k1, keyID);
+  BOOST_CHECK_EQUAL(keyID, 1);
+  backendUnderTest->addDomainKey(DNSName("unit.test."), k2, keyID);
+  BOOST_CHECK_EQUAL(keyID, 2);
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getDomainKeys)
@@ -150,18 +150,18 @@ BOOST_AUTO_TEST_CASE(test_method_getDomainKeys)
   std::vector<DNSBackend::KeyData> keys;
   BOOST_TEST_MESSAGE("Testing getDomainKeys method");
   // we expect to get two keys
-  be->getDomainKeys(DNSName("unit.test."), keys);
+  backendUnderTest->getDomainKeys(DNSName("unit.test."), keys);
   BOOST_CHECK_EQUAL(keys.size(), 2);
   // in case we got more than 2 keys, which would be unexpected
   // but not fatal
   if (keys.size() > 1) {
     // check that we have two keys
-    for (DNSBackend::KeyData& kd : keys) {
-      BOOST_CHECK(kd.id > 0);
-      BOOST_CHECK(kd.flags == 256 || kd.flags == 257);
-      BOOST_CHECK(kd.active == true);
-      BOOST_CHECK(kd.published == true);
-      BOOST_CHECK(kd.content.size() > 500);
+    for (DNSBackend::KeyData& keyData : keys) {
+      BOOST_CHECK(keyData.id > 0);
+      BOOST_CHECK(keyData.flags == 256 || keyData.flags == 257);
+      BOOST_CHECK(keyData.active == true);
+      BOOST_CHECK(keyData.published == true);
+      BOOST_CHECK(keyData.content.size() > 500);
     }
   }
 }
@@ -169,19 +169,19 @@ BOOST_AUTO_TEST_CASE(test_method_getDomainKeys)
 BOOST_AUTO_TEST_CASE(test_method_deactivateDomainKey)
 {
   BOOST_TEST_MESSAGE("Testing deactivateDomainKey method");
-  BOOST_CHECK(be->deactivateDomainKey(DNSName("unit.test."), 1));
+  BOOST_CHECK(backendUnderTest->deactivateDomainKey(DNSName("unit.test."), 1));
 }
 
 BOOST_AUTO_TEST_CASE(test_method_activateDomainKey)
 {
   BOOST_TEST_MESSAGE("Testing activateDomainKey method");
-  BOOST_CHECK(be->activateDomainKey(DNSName("unit.test."), 1));
+  BOOST_CHECK(backendUnderTest->activateDomainKey(DNSName("unit.test."), 1));
 }
 
 BOOST_AUTO_TEST_CASE(test_method_removeDomainKey)
 {
-  BOOST_CHECK(be->removeDomainKey(DNSName("unit.test."), 2));
-  BOOST_CHECK(be->removeDomainKey(DNSName("unit.test."), 1));
+  BOOST_CHECK(backendUnderTest->removeDomainKey(DNSName("unit.test."), 2));
+  BOOST_CHECK(backendUnderTest->removeDomainKey(DNSName("unit.test."), 1));
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getBeforeAndAfterNamesAbsolute)
@@ -191,7 +191,7 @@ BOOST_AUTO_TEST_CASE(test_method_getBeforeAndAfterNamesAbsolute)
   DNSName after;
   BOOST_TEST_MESSAGE("Testing getBeforeAndAfterNamesAbsolute method");
 
-  be->getBeforeAndAfterNamesAbsolute(-1, DNSName("middle.unit.test."), unhashed, before, after);
+  backendUnderTest->getBeforeAndAfterNamesAbsolute(-1, DNSName("middle.unit.test."), unhashed, before, after);
   BOOST_CHECK_EQUAL(unhashed.toString(), "middle.");
   BOOST_CHECK_EQUAL(before.toString(), "begin.");
   BOOST_CHECK_EQUAL(after.toString(), "stop.");
@@ -202,7 +202,7 @@ BOOST_AUTO_TEST_CASE(test_method_setTSIGKey)
   std::string algorithm;
   std::string content;
   BOOST_TEST_MESSAGE("Testing setTSIGKey method");
-  BOOST_CHECK_MESSAGE(be->setTSIGKey(DNSName("unit.test."), DNSName("hmac-md5."), "kp4/24gyYsEzbuTVJRUMoqGFmN3LYgVDzJ/3oRSP7ys="), "did not return true");
+  BOOST_CHECK_MESSAGE(backendUnderTest->setTSIGKey(DNSName("unit.test."), DNSName("hmac-md5."), "kp4/24gyYsEzbuTVJRUMoqGFmN3LYgVDzJ/3oRSP7ys="), "did not return true");
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getTSIGKey)
@@ -210,7 +210,7 @@ BOOST_AUTO_TEST_CASE(test_method_getTSIGKey)
   DNSName algorithm;
   std::string content;
   BOOST_TEST_MESSAGE("Testing getTSIGKey method");
-  be->getTSIGKey(DNSName("unit.test."), algorithm, content);
+  backendUnderTest->getTSIGKey(DNSName("unit.test."), algorithm, content);
   BOOST_CHECK_EQUAL(algorithm.toString(), "hmac-md5.");
   BOOST_CHECK_EQUAL(content, "kp4/24gyYsEzbuTVJRUMoqGFmN3LYgVDzJ/3oRSP7ys=");
 }
@@ -220,14 +220,14 @@ BOOST_AUTO_TEST_CASE(test_method_deleteTSIGKey)
   std::string algorithm;
   std::string content;
   BOOST_TEST_MESSAGE("Testing deleteTSIGKey method");
-  BOOST_CHECK_MESSAGE(be->deleteTSIGKey(DNSName("unit.test.")), "did not return true");
+  BOOST_CHECK_MESSAGE(backendUnderTest->deleteTSIGKey(DNSName("unit.test.")), "did not return true");
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getTSIGKeys)
 {
   std::vector<struct TSIGKey> keys;
   BOOST_TEST_MESSAGE("Testing getTSIGKeys method");
-  be->getTSIGKeys(keys);
+  backendUnderTest->getTSIGKeys(keys);
   BOOST_CHECK(!keys.empty());
   if (!keys.empty()) {
     BOOST_CHECK_EQUAL(keys[0].name.toString(), "test.");
@@ -239,159 +239,159 @@ BOOST_AUTO_TEST_CASE(test_method_getTSIGKeys)
 BOOST_AUTO_TEST_CASE(test_method_setNotified)
 {
   BOOST_TEST_MESSAGE("Testing setNotified method");
-  be->setNotified(1, 2);
+  backendUnderTest->setNotified(1, 2);
   BOOST_CHECK(true); // we check this on next step
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getDomainInfo)
 {
-  DomainInfo di;
+  DomainInfo domainInfo;
   BOOST_TEST_MESSAGE("Testing getDomainInfo method");
-  be->getDomainInfo(DNSName("unit.test."), di);
-  BOOST_CHECK_EQUAL(di.zone.toString(), "unit.test.");
-  BOOST_CHECK_EQUAL(di.serial, 2);
-  BOOST_CHECK_EQUAL(di.notified_serial, 2);
-  BOOST_CHECK_EQUAL(di.kind, DomainInfo::Native);
-  BOOST_CHECK_EQUAL(di.backend, be);
+  backendUnderTest->getDomainInfo(DNSName("unit.test."), domainInfo);
+  BOOST_CHECK_EQUAL(domainInfo.zone.toString(), "unit.test.");
+  BOOST_CHECK_EQUAL(domainInfo.serial, 2);
+  BOOST_CHECK_EQUAL(domainInfo.notified_serial, 2);
+  BOOST_CHECK_EQUAL(domainInfo.kind, DomainInfo::Native);
+  BOOST_CHECK_EQUAL(domainInfo.backend, backendUnderTest.get());
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getAllDomains)
 {
-  DomainInfo di;
+  DomainInfo domainInfo;
   BOOST_TEST_MESSAGE("Testing getAllDomains method");
   vector<DomainInfo> result;
 
-  be->getAllDomains(&result, true, true);
+  backendUnderTest->getAllDomains(&result, true, true);
 
   BOOST_REQUIRE(!result.empty());
-  di = result.at(0);
-  BOOST_CHECK_EQUAL(di.zone.toString(), "unit.test.");
-  BOOST_CHECK_EQUAL(di.serial, 2);
-  BOOST_CHECK_EQUAL(di.notified_serial, 2);
-  BOOST_CHECK_EQUAL(di.kind, DomainInfo::Native);
-  BOOST_CHECK_EQUAL(di.backend, be);
+  domainInfo = result.at(0);
+  BOOST_CHECK_EQUAL(domainInfo.zone.toString(), "unit.test.");
+  BOOST_CHECK_EQUAL(domainInfo.serial, 2);
+  BOOST_CHECK_EQUAL(domainInfo.notified_serial, 2);
+  BOOST_CHECK_EQUAL(domainInfo.kind, DomainInfo::Native);
+  BOOST_CHECK_EQUAL(domainInfo.backend, backendUnderTest.get());
 }
 
 BOOST_AUTO_TEST_CASE(test_method_superMasterBackend)
 {
-  DNSResourceRecord rr;
+  DNSResourceRecord resourceRecord;
   std::vector<DNSResourceRecord> nsset;
   DNSBackend* dbd = nullptr;
   BOOST_TEST_MESSAGE("Testing superMasterBackend method");
 
-  rr.qname = DNSName("example.com.");
-  rr.qtype = QType::NS;
-  rr.qclass = QClass::IN;
-  rr.ttl = 300;
-  rr.content = "ns1.example.com.";
-  nsset.push_back(rr);
-  rr.qname = DNSName("example.com.");
-  rr.qtype = QType::NS;
-  rr.qclass = QClass::IN;
-  rr.ttl = 300;
-  rr.content = "ns2.example.com.";
-  nsset.push_back(rr);
-
-  BOOST_CHECK(be->superMasterBackend("10.0.0.1", DNSName("example.com."), nsset, nullptr, nullptr, &dbd));
+  resourceRecord.qname = DNSName("example.com.");
+  resourceRecord.qtype = QType::NS;
+  resourceRecord.qclass = QClass::IN;
+  resourceRecord.ttl = 300;
+  resourceRecord.content = "ns1.example.com.";
+  nsset.push_back(resourceRecord);
+  resourceRecord.qname = DNSName("example.com.");
+  resourceRecord.qtype = QType::NS;
+  resourceRecord.qclass = QClass::IN;
+  resourceRecord.ttl = 300;
+  resourceRecord.content = "ns2.example.com.";
+  nsset.push_back(resourceRecord);
+
+  BOOST_CHECK(backendUnderTest->superMasterBackend("10.0.0.1", DNSName("example.com."), nsset, nullptr, nullptr, &dbd));
 
   // let's see what we got
-  BOOST_CHECK_EQUAL(dbd, be);
+  BOOST_CHECK_EQUAL(dbd, backendUnderTest.get());
 }
 
 BOOST_AUTO_TEST_CASE(test_method_createSlaveDomain)
 {
   BOOST_TEST_MESSAGE("Testing createSlaveDomain method");
-  BOOST_CHECK(be->createSlaveDomain("10.0.0.1", DNSName("pirate.unit.test."), "", ""));
+  BOOST_CHECK(backendUnderTest->createSlaveDomain("10.0.0.1", DNSName("pirate.unit.test."), "", ""));
 }
 
 BOOST_AUTO_TEST_CASE(test_method_feedRecord)
 {
-  DNSResourceRecord rr;
+  DNSResourceRecord resourceRecord;
   BOOST_TEST_MESSAGE("Testing feedRecord method");
-  be->startTransaction(DNSName("example.com."), 2);
-  rr.qname = DNSName("example.com.");
-  rr.qtype = QType::SOA;
-  rr.qclass = QClass::IN;
-  rr.ttl = 300;
-  rr.content = "ns1.example.com. hostmaster.example.com. 2013013441 7200 3600 1209600 300";
-  BOOST_CHECK(be->feedRecord(rr, DNSName()));
-  rr.qname = DNSName("replace.example.com.");
-  rr.qtype = QType::A;
-  rr.qclass = QClass::IN;
-  rr.ttl = 300;
-  rr.content = "127.0.0.1";
-  BOOST_CHECK(be->feedRecord(rr, DNSName()));
-  be->commitTransaction();
+  backendUnderTest->startTransaction(DNSName("example.com."), 2);
+  resourceRecord.qname = DNSName("example.com.");
+  resourceRecord.qtype = QType::SOA;
+  resourceRecord.qclass = QClass::IN;
+  resourceRecord.ttl = 300;
+  resourceRecord.content = "ns1.example.com. hostmaster.example.com. 2013013441 7200 3600 1209600 300";
+  BOOST_CHECK(backendUnderTest->feedRecord(resourceRecord, DNSName()));
+  resourceRecord.qname = DNSName("replace.example.com.");
+  resourceRecord.qtype = QType::A;
+  resourceRecord.qclass = QClass::IN;
+  resourceRecord.ttl = 300;
+  resourceRecord.content = "127.0.0.1";
+  BOOST_CHECK(backendUnderTest->feedRecord(resourceRecord, DNSName()));
+  backendUnderTest->commitTransaction();
 }
 
 BOOST_AUTO_TEST_CASE(test_method_replaceRRSet)
 {
-  be->startTransaction(DNSName("example.com."), 2);
-  DNSResourceRecord rr;
+  backendUnderTest->startTransaction(DNSName("example.com."), 2);
+  DNSResourceRecord resourceRecord;
   std::vector<DNSResourceRecord> rrset;
   BOOST_TEST_MESSAGE("Testing replaceRRSet method");
-  rr.qname = DNSName("replace.example.com.");
-  rr.qtype = QType::A;
-  rr.qclass = QClass::IN;
-  rr.ttl = 300;
-  rr.content = "1.1.1.1";
-  rrset.push_back(rr);
-  BOOST_CHECK(be->replaceRRSet(2, DNSName("replace.example.com."), QType(QType::A), rrset));
-  be->commitTransaction();
+  resourceRecord.qname = DNSName("replace.example.com.");
+  resourceRecord.qtype = QType::A;
+  resourceRecord.qclass = QClass::IN;
+  resourceRecord.ttl = 300;
+  resourceRecord.content = "1.1.1.1";
+  rrset.push_back(resourceRecord);
+  BOOST_CHECK(backendUnderTest->replaceRRSet(2, DNSName("replace.example.com."), QType(QType::A), rrset));
+  backendUnderTest->commitTransaction();
 }
 
 BOOST_AUTO_TEST_CASE(test_method_feedEnts)
 {
   BOOST_TEST_MESSAGE("Testing feedEnts method");
-  be->startTransaction(DNSName("example.com."), 2);
+  backendUnderTest->startTransaction(DNSName("example.com."), 2);
   map<DNSName, bool> nonterm = boost::assign::map_list_of(DNSName("_udp"), true)(DNSName("_sip._udp"), true);
-  BOOST_CHECK(be->feedEnts(2, nonterm));
-  be->commitTransaction();
+  BOOST_CHECK(backendUnderTest->feedEnts(2, nonterm));
+  backendUnderTest->commitTransaction();
 }
 
 BOOST_AUTO_TEST_CASE(test_method_feedEnts3)
 {
   BOOST_TEST_MESSAGE("Testing feedEnts3 method");
-  be->startTransaction(DNSName("example.com"), 2);
+  backendUnderTest->startTransaction(DNSName("example.com"), 2);
   NSEC3PARAMRecordContent ns3prc;
   ns3prc.d_iterations = 1;
   ns3prc.d_salt = "\u00aa\u00bb\u00cc\u00dd";
   map<DNSName, bool> nonterm = boost::assign::map_list_of(DNSName("_udp"), true)(DNSName("_sip._udp"), true);
-  BOOST_CHECK(be->feedEnts3(2, DNSName("example.com."), nonterm, ns3prc, 0));
-  be->commitTransaction();
+  BOOST_CHECK(backendUnderTest->feedEnts3(2, DNSName("example.com."), nonterm, ns3prc, 0));
+  backendUnderTest->commitTransaction();
 }
 
 BOOST_AUTO_TEST_CASE(test_method_abortTransaction)
 {
   BOOST_TEST_MESSAGE("Testing abortTransaction method");
-  be->startTransaction(DNSName("example.com."), 2);
-  BOOST_CHECK(be->abortTransaction());
+  backendUnderTest->startTransaction(DNSName("example.com."), 2);
+  BOOST_CHECK(backendUnderTest->abortTransaction());
 }
 
 BOOST_AUTO_TEST_CASE(test_method_directBackendCmd)
 {
   BOOST_TEST_MESSAGE("Testing directBackendCmd method");
-  BOOST_CHECK_EQUAL(be->directBackendCmd("PING 1234"), "PING 1234");
+  BOOST_CHECK_EQUAL(backendUnderTest->directBackendCmd("PING 1234"), "PING 1234");
 }
 
 BOOST_AUTO_TEST_CASE(test_method_getUpdatedMasters)
 {
-  DomainInfo di;
+  DomainInfo domainInfo;
   BOOST_TEST_MESSAGE("Testing getUpdatedMasters method");
   vector<DomainInfo> result;
   std::unordered_set<DNSName> catalogs;
   CatalogHashMap hashes;
 
-  be->getUpdatedMasters(result, catalogs, hashes);
+  backendUnderTest->getUpdatedMasters(result, catalogs, hashes);
 
   BOOST_REQUIRE(!result.empty());
 
-  di = result.at(0);
-  BOOST_CHECK_EQUAL(di.zone.toString(), "master.test.");
-  BOOST_CHECK_EQUAL(di.serial, 2);
-  BOOST_CHECK_EQUAL(di.notified_serial, 2);
-  BOOST_CHECK_EQUAL(di.kind, DomainInfo::Master);
-  BOOST_CHECK_EQUAL(di.backend, be);
+  domainInfo = result.at(0);
+  BOOST_CHECK_EQUAL(domainInfo.zone.toString(), "master.test.");
+  BOOST_CHECK_EQUAL(domainInfo.serial, 2);
+  BOOST_CHECK_EQUAL(domainInfo.notified_serial, 2);
+  BOOST_CHECK_EQUAL(domainInfo.kind, DomainInfo::Master);
+  BOOST_CHECK_EQUAL(domainInfo.backend, backendUnderTest.get());
 }
 
 BOOST_AUTO_TEST_SUITE_END();