Browse Source

ok that should actually be an exception (also added test for that)

git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@929 e5f2f494-b856-4b98-b285-d166d9295462
Jelte Jansen 15 years ago
parent
commit
9964f279b0
2 changed files with 9 additions and 3 deletions
  1. 1 1
      src/lib/config/cpp/config_data.cc
  2. 8 2
      src/lib/config/cpp/config_data_unittests.cc

+ 1 - 1
src/lib/config/cpp/config_data.cc

@@ -31,7 +31,7 @@ find_spec_part(ElementPtr spec, const std::string& identifier)
 {
     //std::cout << "[XX] find_spec_part for " << identifier << std::endl;
     if (!spec) {
-        return ElementPtr();
+        dns_throw(DataNotFoundError, "Empty specification");
     }
     //std::cout << "in: " << std::endl << spec << std::endl;
     ElementPtr spec_part = spec;

+ 8 - 2
src/lib/config/cpp/config_data_unittests.cc

@@ -38,8 +38,8 @@ TEST(ConfigData, Creation) {
 }
 
 TEST(ConfigData, getValue) {
-    ModuleSpec spec2 = moduleSpecFromFile(std::string(TEST_DATA_PATH) + "/spec22.spec");
-    ConfigData cd = ConfigData(spec2);
+    ModuleSpec spec22 = moduleSpecFromFile(std::string(TEST_DATA_PATH) + "/spec22.spec");
+    ConfigData cd = ConfigData(spec22);
     //std::cout << "[XX] SPEC2: " << cd.getModuleSpec().getFullSpec() << std::endl;
     bool is_default;
     //ElementPtr value = cd.getValue(is_default, "item1");
@@ -74,6 +74,12 @@ TEST(ConfigData, getValue) {
     EXPECT_THROW(cd.getValue("value6/a")->str(), DataNotFoundError);
     EXPECT_THROW(cd.getValue("value6/no_such_item")->str(), DataNotFoundError);
     EXPECT_THROW(cd.getValue("value8/a")->str(), DataNotFoundError);
+    EXPECT_THROW(cd.getValue("value8/a")->str(), DataNotFoundError);
+    EXPECT_THROW(cd.getValue("value8/a")->str(), DataNotFoundError);
+
+    ModuleSpec spec1 = moduleSpecFromFile(std::string(TEST_DATA_PATH) + "/spec1.spec");
+    ConfigData cd1 = ConfigData(spec1);
+    EXPECT_THROW(cd1.getValue("anything")->str(), DataNotFoundError);
 }
 
 TEST(ConfigData, setLocalConfig) {