]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2378] Basic test for incremental loading
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Tue, 27 Nov 2012 10:34:56 +0000 (11:34 +0100)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Thu, 13 Dec 2012 10:33:56 +0000 (11:33 +0100)
src/lib/datasrc/tests/zone_loader_unittest.cc

index 807341358a90929f647dd7bc4e260a600881e1e0..a02d4afe1ab73e86a1fd3b2d5efdd838aa4713e5 100644 (file)
@@ -169,4 +169,33 @@ TEST_F(ZoneLoaderTest, copyUnsigned) {
     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);
+}
+
 }