}
};
-class MockIteratorRRSIGMixedCovered : public ZoneIterator {
-private:
- MockIteratorRRSIGMixedCovered(RRClass rrclass) :
- rrclass_(rrclass),
- counter_(0)
- {}
-
- RRClass rrclass_;
- int counter_;
-
-public:
- virtual ConstRRsetPtr getNextRRset() {
- RRsetPtr rrset;
-
- switch (counter_) {
- case 0:
- rrset.reset(new RRset(Name("example.org"),
- RRClass::IN(), RRType::SOA(), RRTTL(3600)));
- rrset->addRdata(generic::SOA(Name("ns1.example.org"),
- Name("bugs.x.w.example.org"),
- 2010012601, 3600, 300, 3600000,
- 1200));
- break;
-
- case 1: {
- rrset.reset(new RRset(Name("example.org"),
- RRClass::IN(), RRType::A(), RRTTL(3600)));
- rrset->addRdata(in::A("192.0.2.1"));
- rrset->addRdata(in::A("192.0.2.2"));
-
- RRsetPtr rrsig(new RRset(Name("example.org"), rrclass_,
- RRType::RRSIG(), RRTTL(300)));
- rrsig->addRdata(generic::RRSIG("A 5 3 3600 "
- "20000101000000 20000201000000 "
- "12345 example.org. FAKEFAKEFAKE"));
- rrsig->addRdata(generic::RRSIG("NS 5 3 3600 "
- "20000101000000 20000201000000 "
- "54321 example.org. "
- "FAKEFAKEFAKEFAKE"));
- rrset->addRRsig(rrsig);
- break;
- }
-
- default:
- rrset.reset();
- }
-
- if (counter_ < 2) {
- counter_++;
- }
-
- return (rrset);
- }
-
- virtual ConstRRsetPtr getSOA() const {
- isc_throw(isc::NotImplemented, "Not implemented");
- }
-
- static ZoneIteratorPtr makeIterator(RRClass rrclass) {
- return (ZoneIteratorPtr(new MockIteratorRRSIGMixedCovered(rrclass)));
- }
-};
-
-class MockIteratorEmptyRRset : public ZoneIterator {
-private:
- MockIteratorEmptyRRset(RRClass rrclass) :
- rrclass_(rrclass),
- counter_(0)
- {}
-
- RRClass rrclass_;
- int counter_;
-
-public:
- virtual ConstRRsetPtr getNextRRset() {
- RRsetPtr rrset;
-
- switch (counter_) {
- case 0:
- rrset.reset(new RRset(Name("example.org"),
- RRClass::IN(), RRType::SOA(), RRTTL(3600)));
- rrset->addRdata(generic::SOA(Name("ns1.example.org"),
- Name("bugs.x.w.example.org"),
- 2010012601, 3600, 300, 3600000,
- 1200));
- break;
-
- case 1: {
- rrset.reset(new RRset(Name("example.org"),
- RRClass::IN(), RRType::A(), RRTTL(3600)));
- break;
- }
-
- default:
- rrset.reset();
- }
-
- if (counter_ < 2) {
- counter_++;
- }
-
- return (rrset);
- }
-
- virtual ConstRRsetPtr getSOA() const {
- isc_throw(isc::NotImplemented, "Not implemented");
- }
-
- static ZoneIteratorPtr makeIterator(RRClass rrclass) {
- return (ZoneIteratorPtr(new MockIteratorEmptyRRset(rrclass)));
- }
-};
-
class MemoryClientTest : public ::testing::Test {
protected:
MemoryClientTest() : zclass_(RRClass::IN()),
}
TEST_F(MemoryClientTest, loadRRSIGsRdataMixedCoveredTypes) {
+ vector<ConstRRsetPtr> rrsets_vec;
+
+ RRsetPtr rrset(new RRset(Name("example.org"),
+ zclass_, RRType::SOA(), RRTTL(3600)));
+ rrset->addRdata(generic::SOA(Name("ns1.example.org"),
+ Name("bugs.x.w.example.org"),
+ 2010012601, 3600, 300, 3600000, 1200));
+ rrsets_vec.push_back(rrset);
+
+ rrset.reset(new RRset(Name("example.org"),
+ zclass_, RRType::A(), RRTTL(3600)));
+ rrset->addRdata(in::A("192.0.2.1"));
+ rrset->addRdata(in::A("192.0.2.2"));
+
+ RRsetPtr rrsig(new RRset(Name("example.org"), zclass_,
+ RRType::RRSIG(), RRTTL(300)));
+ rrsig->addRdata(generic::RRSIG("A 5 3 "
+ "3600 20000101000000 20000201000000 "
+ "12345 example.org. FAKEFAKEFAKE"));
+ rrsig->addRdata(generic::RRSIG("NS 5 3 "
+ "3600 20000101000000 20000201000000 "
+ "54321 example.org. "
+ "FAKEFAKEFAKEFAKE"));
+ rrset->addRRsig(rrsig);
+
+ rrsets_vec.push_back(rrset);
+
EXPECT_THROW(
client_->load(Name("example.org"),
- *MockIteratorRRSIGMixedCovered::makeIterator(zclass_)),
+ *MockVectorIterator::makeIterator(rrsets_vec)),
ZoneDataUpdater::AddError);
// Teardown checks for memory segment leaks
}
}
TEST_F(MemoryClientTest, addEmptyRRsetThrows) {
+ vector<ConstRRsetPtr> rrsets_vec;
+
+ RRsetPtr rrset(new RRset(Name("example.org"),
+ zclass_, RRType::SOA(), RRTTL(3600)));
+ rrset->addRdata(generic::SOA(Name("ns1.example.org"),
+ Name("bugs.x.w.example.org"),
+ 2010012601, 3600, 300, 3600000, 1200));
+ rrsets_vec.push_back(rrset);
+
+ rrset.reset(new RRset(Name("example.org"),
+ zclass_, RRType::A(), RRTTL(3600)));
+ rrsets_vec.push_back(rrset);
+
EXPECT_THROW(
client_->load(Name("example.org"),
- *MockIteratorEmptyRRset::makeIterator(zclass_)),
+ *MockVectorIterator::makeIterator(rrsets_vec)),
ZoneDataUpdater::AddError);
// Teardown checks for memory segment leaks
}