]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#642,!373] Check that it is possible to delete global param for server tag
authorMarcin Siodelski <marcin@isc.org>
Thu, 13 Jun 2019 17:36:35 +0000 (19:36 +0200)
committerMarcin Siodelski <marcin@isc.org>
Thu, 27 Jun 2019 18:51:31 +0000 (14:51 -0400)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc

index fc1a808b7d9c9ee685edd3683850d86d26316736..fda518dfee80367be060ebfb80c752a8146b4886 100644 (file)
@@ -736,11 +736,25 @@ TEST_F(MySqlConfigBackendDHCPv4Test, globalParameters4WithServerTags) {
     EXPECT_EQ(global_parameter3->getValue(), returned_global->getValue());
     EXPECT_EQ("all", returned_global->getServerTag());
 
+    // Attempt to delete global parameter for server1.
+    uint64_t deleted_num = 0;
+    EXPECT_NO_THROW(deleted_num = cbptr_->deleteGlobalParameter4(ServerSelector::ONE("server1"),
+                                                                 "global"));
+    // No parameters should be deleted. In particular, the parameter for the logical
+    // server 'all' should not be deleted.
+    EXPECT_EQ(0, deleted_num);
+
+    // Deleting the existing value for server2 should succeed.
+    EXPECT_NO_THROW(deleted_num = cbptr_->deleteGlobalParameter4(ServerSelector::ONE("server2"),
+                                                                 "global"));
+    EXPECT_EQ(1, deleted_num);
+
     // Delete all servers, except 'all'.
-    EXPECT_NO_THROW(cbptr_->deleteAllServers4());
+    EXPECT_NO_THROW(deleted_num = cbptr_->deleteAllServers4());
     EXPECT_NO_THROW(
         returned_globals = cbptr_->getAllGlobalParameters4(ServerSelector::ALL())
     );
+    EXPECT_EQ(1, deleted_num);
     ASSERT_EQ(1, returned_globals.size());
     returned_global = *returned_globals.begin();
     // The common value for all servers should still be available because 'all'
index e845a471bbb50f30a73162a56e9d8169386e6a93..30e6331f827a79bfbbc510e7ee2693c6ec5ff63f 100644 (file)
@@ -776,11 +776,25 @@ TEST_F(MySqlConfigBackendDHCPv6Test, globalParameters6WithServerTags) {
     EXPECT_EQ(global_parameter3->getValue(), returned_global->getValue());
     EXPECT_EQ("all", returned_global->getServerTag());
 
+    // Attempt to delete global parameter for server1.
+    uint64_t deleted_num = 0;
+    EXPECT_NO_THROW(deleted_num = cbptr_->deleteGlobalParameter6(ServerSelector::ONE("server1"),
+                                                                 "global"));
+    // No parameters should be deleted. In particular, the parameter for the logical
+    // server 'all' should not be deleted.
+    EXPECT_EQ(0, deleted_num);
+
+    // Deleting the existing value for server2 should succeed.
+    EXPECT_NO_THROW(deleted_num = cbptr_->deleteGlobalParameter6(ServerSelector::ONE("server2"),
+                                                                 "global"));
+    EXPECT_EQ(1, deleted_num);
+
     // Delete all servers, except 'all'.
     EXPECT_NO_THROW(cbptr_->deleteAllServers6());
     EXPECT_NO_THROW(
         returned_globals = cbptr_->getAllGlobalParameters6(ServerSelector::ALL())
     );
+    EXPECT_EQ(1, deleted_num);
     ASSERT_EQ(1, returned_globals.size());
     returned_global = *returned_globals.begin();
     // The common value for all servers should still be available because 'all'