]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2108] Add another InMemoryClient::add() test
authorMukund Sivaraman <muks@isc.org>
Wed, 5 Sep 2012 14:13:03 +0000 (19:43 +0530)
committerMukund Sivaraman <muks@isc.org>
Wed, 5 Sep 2012 14:13:03 +0000 (19:43 +0530)
src/lib/datasrc/memory/tests/memory_client_unittest.cc

index bf445a5b017b2e38087c7abbe2f8474f6f4bd1c6..aa51a4adc216816215395481475767ba50615c84 100644 (file)
@@ -118,6 +118,30 @@ TEST_F(MemoryClientTest, addRRsetToNonExistentZoneThrows) {
     EXPECT_THROW(client_->add(Name("example.org"), rrset_a), DataSourceError);
 }
 
+TEST_F(MemoryClientTest, add) {
+    client_->load(Name("example.org"), TEST_DATA_DIR "/example.org-empty.zone");
+
+    // Add another RRset
+    RRsetPtr rrset_a(new RRset(Name("example.org"), RRClass::IN(), RRType::A(),
+                               RRTTL(300)));
+    rrset_a->addRdata(rdata::in::A("192.0.2.1"));
+    client_->add(Name("example.org"), rrset_a);
+
+    ZoneIteratorPtr iterator(client_->getIterator(Name("example.org")));
+
+    // First we have the SOA
+    ConstRRsetPtr rrset(iterator->getNextRRset());
+    EXPECT_TRUE(rrset);
+    EXPECT_EQ(RRType::A(), rrset->getType());
+
+    rrset = iterator->getNextRRset();
+    EXPECT_TRUE(rrset);
+    EXPECT_EQ(RRType::SOA(), rrset->getType());
+
+    // There's nothing else in this zone
+    EXPECT_EQ(ConstRRsetPtr(), iterator->getNextRRset());
+}
+
 TEST_F(MemoryClientTest, getUpdaterThrowsNotImplemented) {
     // This method is not implemented.
     EXPECT_THROW(client_->getUpdater(Name("."), false, false),