[svn] commit: r931 - /trunk/src/lib/config/cpp/module_spec_unittests.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Feb 23 16:28:39 UTC 2010


Author: jelte
Date: Tue Feb 23 16:28:39 2010
New Revision: 931

Log:
added some tests for module_spec

Modified:
    trunk/src/lib/config/cpp/module_spec_unittests.cc

Modified: trunk/src/lib/config/cpp/module_spec_unittests.cc
==============================================================================
--- trunk/src/lib/config/cpp/module_spec_unittests.cc (original)
+++ trunk/src/lib/config/cpp/module_spec_unittests.cc Tue Feb 23 16:28:39 2010
@@ -57,11 +57,21 @@
                    specfile("doesnotexist"),
                    ": No such file or directory");
 
+    dd = moduleSpecFromFile(specfile("spec2.spec"));
+    EXPECT_EQ("[ {\"command_args\": [ {\"item_default\": \"\", \"item_name\": \"message\", \"item_optional\": False, \"item_type\": \"string\"} ], \"command_description\": \"Print the given message to stdout\", \"command_name\": \"print_message\"}, {\"command_args\": [  ], \"command_description\": \"Shut down BIND 10\", \"command_name\": \"shutdown\"} ]", dd.getCommandsSpec()->str());
+    EXPECT_EQ("Spec2", dd.getModuleName());
+
     std::ifstream file;
     file.open(specfile("spec1.spec").c_str());
     dd = moduleSpecFromFile(file);
     EXPECT_EQ(dd.getFullSpec()->get("module_name")
                               ->stringValue(), "Spec1");
+    EXPECT_EQ(dd.getCommandsSpec(), ElementPtr());
+
+    std::ifstream file2;
+    file2.open(specfile("spec8.spec").c_str());
+    EXPECT_THROW(moduleSpecFromFile(file2), ModuleSpecError);
+
 }
 
 TEST(ModuleSpec, SpecfileItems) {
@@ -129,6 +139,18 @@
     return dd.validate_config(data);
 }
 
+bool
+data_test_with_errors(ModuleSpec dd, const std::string& data_file_name, ElementPtr errors)
+{
+    std::ifstream data_file;
+
+    data_file.open(specfile(data_file_name).c_str());
+    ElementPtr data = Element::createFromString(data_file, data_file_name);
+    data_file.close();
+
+    return dd.validate_config(data, true, errors);
+}
+
 TEST(ModuleSpec, DataValidation) {
     ModuleSpec dd = moduleSpecFromFile(specfile("spec22.spec"));
 
@@ -140,4 +162,8 @@
     EXPECT_TRUE(data_test(dd, "data22_6.data"));
     EXPECT_TRUE(data_test(dd, "data22_7.data"));
     EXPECT_FALSE(data_test(dd, "data22_8.data"));
+
+    ElementPtr errors = Element::createFromString("[]");
+    EXPECT_FALSE(data_test_with_errors(dd, "data22_8.data", errors));
+    EXPECT_EQ("[ \"Type mismatch\" ]", errors->str());
 }




More information about the bind10-changes mailing list