From: Mukund Sivaraman Date: Wed, 5 Sep 2012 14:13:03 +0000 (+0530) Subject: [2108] Add another InMemoryClient::add() test X-Git-Tag: trac2351_base~70^2~76 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=92850a8f2cbcd9dd08882fc92c3db5fe11f8a32f;p=thirdparty%2Fkea.git [2108] Add another InMemoryClient::add() test --- diff --git a/src/lib/datasrc/memory/tests/memory_client_unittest.cc b/src/lib/datasrc/memory/tests/memory_client_unittest.cc index bf445a5b01..aa51a4adc2 100644 --- a/src/lib/datasrc/memory/tests/memory_client_unittest.cc +++ b/src/lib/datasrc/memory/tests/memory_client_unittest.cc @@ -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),