[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