]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#717,!417] Extended mysql_cb test to insert subnet when there is no server.
authorMarcin Siodelski <marcin@isc.org>
Thu, 11 Jul 2019 12:46:11 +0000 (14:46 +0200)
committerMarcin Siodelski <marcin@isc.org>
Fri, 12 Jul 2019 15:58:16 +0000 (11:58 -0400)
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp4_unittest.cc
src/hooks/dhcp/mysql_cb/tests/mysql_cb_dhcp6_unittest.cc

index 0d916f40d7a9bca2c57d086ff02bdaad076bef9b..7d19a5e5097b67858ca863b4751eb6ced2ad8f47 100644 (file)
@@ -1044,6 +1044,17 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getSubnet4) {
     auto subnet = test_subnets_[0];
     auto subnet2 = test_subnets_[2];
 
+    // An attempt to add a subnet to a non-existing server (server1) should fail.
+    EXPECT_THROW(cbptr_->createUpdateSubnet4(ServerSelector::MULTIPLE({ "server1", "server2" }),
+                                             subnet2),
+                 DbOperationError);
+
+    // The subnet shouldn't have been added, even though one of the servers exists.
+    Subnet4Ptr returned_subnet;
+    ASSERT_NO_THROW(returned_subnet = cbptr_->getSubnet4(ServerSelector::ONE("server2"),
+                                                                             subnet2->getID()));
+    EXPECT_FALSE(returned_subnet);
+
     // Insert two subnets, one for all servers and one for server2.
     EXPECT_NO_THROW(cbptr_->createUpdateSubnet4(ServerSelector::ALL(), subnet));
     {
@@ -1142,8 +1153,7 @@ TEST_F(MySqlConfigBackendDHCPv4Test, getSubnet4) {
     EXPECT_NO_THROW(cbptr_->createUpdateSubnet4(ServerSelector::ONE("server2"),  subnet2));
 
     // Fetch again and verify.
-    auto returned_subnet = cbptr_->getSubnet4(ServerSelector::ONE("server2"),
-                                              subnet2->toText());
+    returned_subnet = cbptr_->getSubnet4(ServerSelector::ONE("server2"), subnet2->toText());
     ASSERT_TRUE(returned_subnet);
     EXPECT_EQ(subnet2->toElement()->str(), returned_subnet->toElement()->str());
 
index 99602e2cb4ff6ec4e2040a4803f825fce71ddc14..d5a53e2571d0156a49430512fb3b5821ae96233c 100644 (file)
@@ -1076,6 +1076,17 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getSubnet6) {
     auto subnet = test_subnets_[0];
     auto subnet2 = test_subnets_[2];
 
+    // An attempt to add a subnet to a non-existing server (server1) should fail.
+    EXPECT_THROW(cbptr_->createUpdateSubnet6(ServerSelector::MULTIPLE({ "server1", "server2" }),
+                                             subnet2),
+                 DbOperationError);
+
+    // The subnet shouldn't have been added, even though one of the servers exists.
+    Subnet6Ptr returned_subnet;
+    ASSERT_NO_THROW(returned_subnet = cbptr_->getSubnet6(ServerSelector::ONE("server2"),
+                                                                             subnet2->getID()));
+    EXPECT_FALSE(returned_subnet);
+
     // Insert two subnets, one for all servers and one for server2.
     EXPECT_NO_THROW(cbptr_->createUpdateSubnet6(ServerSelector::ALL(), subnet));
     {
@@ -1175,8 +1186,7 @@ TEST_F(MySqlConfigBackendDHCPv6Test, getSubnet6) {
     EXPECT_NO_THROW(cbptr_->createUpdateSubnet6(ServerSelector::ONE("server2"),  subnet2));
 
     // Fetch again and verify.
-    auto returned_subnet = cbptr_->getSubnet6(ServerSelector::ONE("server2"),
-                                              subnet2->toText());
+    returned_subnet = cbptr_->getSubnet6(ServerSelector::ONE("server2"), subnet2->toText());
     ASSERT_TRUE(returned_subnet);
     EXPECT_EQ(subnet2->toElement()->str(), returned_subnet->toElement()->str());