Browse Source

[2268] Add MockVectorIterator class

Mukund Sivaraman 12 years ago
parent
commit
3744e7a858
1 changed files with 29 additions and 0 deletions
  1. 29 0
      src/lib/datasrc/tests/memory/memory_client_unittest.cc

+ 29 - 0
src/lib/datasrc/tests/memory/memory_client_unittest.cc

@@ -46,6 +46,7 @@ using namespace isc::dns::rdata;
 using namespace isc::datasrc;
 using namespace isc::datasrc::memory;
 using namespace isc::testutils;
+using std::vector;
 
 namespace {
 
@@ -124,6 +125,34 @@ public:
     }
 };
 
+class MockVectorIterator : public ZoneIterator {
+private:
+    MockVectorIterator(const vector<ConstRRsetPtr>& rrsets) :
+        rrsets_(rrsets),
+        counter_(0)
+    {}
+
+    const vector<ConstRRsetPtr> rrsets_;
+    int counter_;
+
+public:
+    virtual ConstRRsetPtr getNextRRset() {
+        if (counter_ >= rrsets_.size()) {
+             return (ConstRRsetPtr());
+        }
+
+        return (rrsets_[counter_++]);
+    }
+
+    virtual ConstRRsetPtr getSOA() const {
+        isc_throw(isc::NotImplemented, "Not implemented");
+    }
+
+    static ZoneIteratorPtr makeIterator(const vector<ConstRRsetPtr>& rrsets) {
+        return (ZoneIteratorPtr(new MockVectorIterator(rrsets)));
+    }
+};
+
 class MockIteratorRRSIGMixedCovered : public ZoneIterator {
 private:
     MockIteratorRRSIGMixedCovered(RRClass rrclass) :