Browse Source

[2378] Basic test for incremental loading

Michal 'vorner' Vaner 12 years ago
parent
commit
62df1d4645
1 changed files with 29 additions and 0 deletions
  1. 29 0
      src/lib/datasrc/tests/zone_loader_unittest.cc

+ 29 - 0
src/lib/datasrc/tests/zone_loader_unittest.cc

@@ -169,4 +169,33 @@ TEST_F(ZoneLoaderTest, copyUnsigned) {
     EXPECT_THROW(loader.loadIncremental(0), isc::InvalidOperation);
     EXPECT_THROW(loader.loadIncremental(0), isc::InvalidOperation);
 }
 }
 
 
+// Try loading incrementally.
+TEST_F(ZoneLoaderTest, copyUnsignedIncremental) {
+    prepareSource(Name::ROOT_NAME(), "root.zone");
+    ZoneLoader loader(destination_client_, Name::ROOT_NAME(),
+                      source_client_);
+
+    // Try loading few RRs first.
+    loader.loadIncremental(10);
+    // We should get the 10 we asked for
+    EXPECT_EQ(10, destination_client_.rrsets_.size());
+    // Not committed yet, we didn't complete the loading
+    EXPECT_FALSE(destination_client_.commit_called_);
+
+    // This is unusual, but allowed. Check it doesn't do anything
+    loader.loadIncremental(0);
+    EXPECT_EQ(10, destination_client_.rrsets_.size());
+    EXPECT_FALSE(destination_client_.commit_called_);
+
+    // We can finish the rest
+    loader.loadIncremental(30);
+    EXPECT_EQ(34, destination_client_.rrsets_.size());
+    EXPECT_TRUE(destination_client_.commit_called_);
+
+    // No more loading now
+    EXPECT_THROW(loader.load(), isc::InvalidOperation);
+    EXPECT_THROW(loader.loadIncremental(1), isc::InvalidOperation);
+    EXPECT_THROW(loader.loadIncremental(0), isc::InvalidOperation);
+}
+
 }
 }