Browse Source

[5110_fix] Compilation and unit-test fixed after rebase to current master

Tomek Mrugalski 8 years ago
parent
commit
feb2cedc09

+ 1 - 682
src/bin/d2/tests/d2_cfg_mgr_unittests.cc

@@ -444,688 +444,7 @@ TEST_F(D2CfgMgrTest, invalidEntry) {
                          " unexpected constant string, expecting JSON");
 }
 
-/// @brief Tests the enforcement of data validation when parsing TSIGKeyInfos.
-/// It verifies that:
-/// 1. Name cannot be blank.
-/// 2. Algorithm cannot be blank.
-/// 3. Secret cannot be blank.
-TEST_F(TSIGKeyInfoTest, invalidEntry) {
-    // Config with a blank name entry.
-    std::string config = "{"
-                         " \"name\": \"\" , "
-                         " \"algorithm\": \"HMAC-MD5\" , "
-                         "   \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" "
-                         "}";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that build fails on blank name.
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Config with a blank algorithm entry.
-    config = "{"
-                         " \"name\": \"d2_key_one\" , "
-                         " \"algorithm\": \"\" , "
-                         "   \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" "
-                         "}";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that build fails on blank algorithm.
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Config with an invalid algorithm entry.
-    config = "{"
-                         " \"name\": \"d2_key_one\" , "
-                         " \"algorithm\": \"bogus\" , "
-                         "   \"secret\": \"LSWXnfkKZjdPJI5QxlpnfQ==\" "
-                         "}";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that build fails on blank algorithm.
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Config with a blank secret entry.
-    config = "{"
-                         " \"name\": \"d2_key_one\" , "
-                         " \"algorithm\": \"HMAC-MD5\" , "
-                         " \"secret\": \"\" "
-                         "}";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that build fails blank secret
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Config with an invalid secret entry.
-    config = "{"
-                         " \"name\": \"d2_key_one\" , "
-                         " \"algorithm\": \"HMAC-MD5\" , "
-                         " \"secret\": \"bogus\" "
-                         "}";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that build fails an invalid secret
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-}
-
-/// @brief Verifies that TSIGKeyInfo parsing creates a proper TSIGKeyInfo
-/// when given a valid combination of entries.
-TEST_F(TSIGKeyInfoTest, validEntry) {
-    // Valid entries for TSIG key, all items are required.
-    std::string config = "{"
-                         " \"name\": \"d2_key_one\" , "
-                         " \"algorithm\": \"HMAC-MD5\" , "
-                         " \"digest-bits\": 120 , "
-                         " \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         "}";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that it builds and commits without throwing.
-    //ASSERT_NO_THROW(parser_->build(config_set_));
-    (parser_->build(config_set_));
-    ASSERT_NO_THROW(parser_->commit());
-
-    // Verify the correct number of keys are present
-    int count =  keys_->size();
-    EXPECT_EQ(1, count);
-
-    // Find the key and retrieve it.
-    TSIGKeyInfoMap::iterator gotit = keys_->find("d2_key_one");
-    ASSERT_TRUE(gotit != keys_->end());
-    TSIGKeyInfoPtr& key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "d2_key_one", "HMAC-MD5",
-                         "dGhpcyBrZXkgd2lsbCBtYXRjaA==", 120));
-}
-
-/// @brief Verifies that attempting to parse an invalid list of TSIGKeyInfo
-/// entries is detected.
-TEST_F(TSIGKeyInfoTest, invalidTSIGKeyList) {
-    // Construct a list of keys with an invalid key entry.
-    std::string config = "["
-
-                         " { \"name\": \"key1\" , "
-                         "   \"algorithm\": \"HMAC-MD5\" ,"
-                         " \"digest-bits\": 120 , "
-                         "   \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
-                         " },"
-                         // this entry has an invalid algorithm
-                         " { \"name\": \"key2\" , "
-                         "   \"algorithm\": \"\" ,"
-                         " \"digest-bits\": 120 , "
-                         "   \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
-                         " },"
-                         " { \"name\": \"key3\" , "
-                         "   \"algorithm\": \"HMAC-MD5\" ,"
-                         "   \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
-                         " }"
-                         " ]";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Create the list parser.
-    isc::dhcp::ParserPtr parser;
-    ASSERT_NO_THROW(parser.reset(new TSIGKeyInfoListParser("test", keys_)));
-
-    // Verify that the list builds without errors.
-    EXPECT_THROW(parser->build(config_set_), D2CfgError);
-}
-
-/// @brief Verifies that attempting to parse an invalid list of TSIGKeyInfo
-/// entries is detected.
-TEST_F(TSIGKeyInfoTest, duplicateTSIGKey) {
-    // Construct a list of keys with an invalid key entry.
-    std::string config = "["
-
-                         " { \"name\": \"key1\" , "
-                         "   \"algorithm\": \"HMAC-MD5\" ,"
-                         " \"digest-bits\": 120 , "
-                         "   \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
-                         " },"
-                         " { \"name\": \"key2\" , "
-                         "   \"algorithm\": \"HMAC-MD5\" ,"
-                         " \"digest-bits\": 120 , "
-                         "   \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
-                         " },"
-                         " { \"name\": \"key1\" , "
-                         "   \"algorithm\": \"HMAC-MD5\" ,"
-                         "   \"secret\": \"GWG/Xfbju4O2iXGqkSu4PQ==\" "
-                         " }"
-                         " ]";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Create the list parser.
-    isc::dhcp::ParserPtr parser;
-    ASSERT_NO_THROW(parser.reset(new TSIGKeyInfoListParser("test", keys_)));
-
-    // Verify that the list builds without errors.
-    EXPECT_THROW(parser->build(config_set_), D2CfgError);
-}
-
-/// @brief Verifies a valid list of TSIG Keys parses correctly.
-/// Also verifies that all of the supported algorithm names work.
-TEST_F(TSIGKeyInfoTest, validTSIGKeyList) {
-    // Construct a valid list of keys.
-    std::string config = "["
-
-                         " { \"name\": \"key1\" , "
-                         "   \"algorithm\": \"HMAC-MD5\" ,"
-                         " \"digest-bits\": 80 , "
-                         "  \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         " },"
-                         " { \"name\": \"key2\" , "
-                         "   \"algorithm\": \"HMAC-SHA1\" ,"
-                         " \"digest-bits\": 80 , "
-                         "  \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         " },"
-                         " { \"name\": \"key3\" , "
-                         "   \"algorithm\": \"HMAC-SHA256\" ,"
-                         " \"digest-bits\": 128 , "
-                         "  \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         " },"
-                         " { \"name\": \"key4\" , "
-                         "   \"algorithm\": \"HMAC-SHA224\" ,"
-                         " \"digest-bits\": 112 , "
-                         "  \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         " },"
-                         " { \"name\": \"key5\" , "
-                         "   \"algorithm\": \"HMAC-SHA384\" ,"
-                         " \"digest-bits\": 192 , "
-                         "  \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         " },"
-                         " { \"name\": \"key6\" , "
-                         "   \"algorithm\": \"HMAC-SHA512\" ,"
-                         " \"digest-bits\": 256 , "
-                         "   \"secret\": \"dGhpcyBrZXkgd2lsbCBtYXRjaA==\" "
-                         " }"
-                         " ]";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that the list builds and commits without errors.
-    // Create the list parser.
-    isc::dhcp::ParserPtr parser;
-    ASSERT_NO_THROW(parser.reset(new TSIGKeyInfoListParser("test", keys_)));
-    ASSERT_NO_THROW(parser->build(config_set_));
-    ASSERT_NO_THROW(parser->commit());
-
-    std::string ref_secret = "dGhpcyBrZXkgd2lsbCBtYXRjaA==";
-    // Verify the correct number of keys are present
-    int count =  keys_->size();
-    ASSERT_EQ(6, count);
-
-    // Find the 1st key and retrieve it.
-    TSIGKeyInfoMap::iterator gotit = keys_->find("key1");
-    ASSERT_TRUE(gotit != keys_->end());
-    TSIGKeyInfoPtr& key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "key1", TSIGKeyInfo::HMAC_MD5_STR,
-                         ref_secret, 80));
-
-    // Find the 2nd key and retrieve it.
-    gotit = keys_->find("key2");
-    ASSERT_TRUE(gotit != keys_->end());
-    key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "key2", TSIGKeyInfo::HMAC_SHA1_STR,
-                         ref_secret, 80));
-
-    // Find the 3rd key and retrieve it.
-    gotit = keys_->find("key3");
-    ASSERT_TRUE(gotit != keys_->end());
-    key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "key3", TSIGKeyInfo::HMAC_SHA256_STR,
-                         ref_secret, 128));
-
-    // Find the 4th key and retrieve it.
-    gotit = keys_->find("key4");
-    ASSERT_TRUE(gotit != keys_->end());
-    key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "key4", TSIGKeyInfo::HMAC_SHA224_STR,
-                         ref_secret, 112));
-
-    // Find the 5th key and retrieve it.
-    gotit = keys_->find("key5");
-    ASSERT_TRUE(gotit != keys_->end());
-    key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "key5", TSIGKeyInfo::HMAC_SHA384_STR,
-                         ref_secret, 192));
-
-    // Find the 6th key and retrieve it.
-    gotit = keys_->find("key6");
-    ASSERT_TRUE(gotit != keys_->end());
-    key = gotit->second;
-
-    // Verify the key contents.
-    EXPECT_TRUE(checkKey(key, "key6", TSIGKeyInfo::HMAC_SHA512_STR,
-                         ref_secret, 256));
-}
-
-/// @brief Tests the enforcement of data validation when parsing DnsServerInfos.
-/// It verifies that:
-/// 1. Specifying both a hostname and an ip address is not allowed.
-/// 2. Specifying both blank a hostname and blank ip address is not allowed.
-/// 3. Specifying a negative port number is not allowed.
-TEST_F(DnsServerInfoTest, invalidEntry) {
-    // Create a config in which both host and ip address are supplied.
-    // Verify that build fails.
-    std::string config = "{ \"hostname\": \"pegasus.tmark\", "
-                         "  \"ip-address\": \"127.0.0.1\" } ";
-    ASSERT_TRUE(fromJSON(config));
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Neither host nor ip address supplied
-    // Verify that builds fails.
-    config = "{ \"hostname\": \"\", "
-             "  \"ip-address\": \"\" } ";
-    ASSERT_TRUE(fromJSON(config));
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Create a config with a negative port number.
-    // Verify that build fails.
-    config = "{ \"ip-address\": \"192.168.5.6\" ,"
-             "  \"port\": -100 }";
-    ASSERT_TRUE(fromJSON(config));
-    EXPECT_THROW (parser_->build(config_set_), isc::BadValue);
-}
-
-
-/// @brief Verifies that DnsServerInfo parsing creates a proper DnsServerInfo
-/// when given a valid combination of entries.
-/// It verifies that:
-/// 1. A DnsServerInfo entry is correctly made, when given only a hostname.
-/// 2. A DnsServerInfo entry is correctly made, when given ip address and port.
-/// 3. A DnsServerInfo entry is correctly made, when given only an ip address.
-TEST_F(DnsServerInfoTest, validEntry) {
-    /// @todo When resolvable hostname is supported you'll need this test.
-    /// // Valid entries for dynamic host
-    /// std::string config = "{ \"hostname\": \"pegasus.tmark\" }";
-    /// ASSERT_TRUE(fromJSON(config));
-
-    /// // Verify that it builds and commits without throwing.
-    /// ASSERT_NO_THROW(parser_->build(config_set_));
-    /// ASSERT_NO_THROW(parser_->commit());
-
-    /// //Verify the correct number of servers are present
-    /// int count =  servers_->size();
-    /// EXPECT_EQ(1, count);
-
-    /// Verify the server exists and has the correct values.
-    /// DnsServerInfoPtr server = (*servers_)[0];
-    /// EXPECT_TRUE(checkServer(server, "pegasus.tmark",
-    ///                         DnsServerInfo::EMPTY_IP_STR,
-    ///                         DnsServerInfo::STANDARD_DNS_PORT));
-
-    /// // Start over for a new test.
-    /// reset();
-
-    // Valid entries for static ip
-    std::string config = " { \"ip-address\": \"127.0.0.1\" , "
-                         "  \"port\": 100 }";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that it builds and commits without throwing.
-    ASSERT_NO_THROW(parser_->build(config_set_));
-    ASSERT_NO_THROW(parser_->commit());
-
-    // Verify the correct number of servers are present
-    int count =  servers_->size();
-    EXPECT_EQ(1, count);
-
-    // Verify the server exists and has the correct values.
-    DnsServerInfoPtr server = (*servers_)[0];
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.1", 100));
-
-    // Start over for a new test.
-    reset();
-
-    // Valid entries for static ip, no port
-    config = " { \"ip-address\": \"192.168.2.5\" }";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that it builds and commits without throwing.
-    ASSERT_NO_THROW(parser_->build(config_set_));
-    ASSERT_NO_THROW(parser_->commit());
-
-    // Verify the correct number of servers are present
-    count =  servers_->size();
-    EXPECT_EQ(1, count);
-
-    // Verify the server exists and has the correct values.
-    server = (*servers_)[0];
-    EXPECT_TRUE(checkServer(server, "", "192.168.2.5",
-                            DnsServerInfo::STANDARD_DNS_PORT));
-}
-
-/// @brief Verifies that attempting to parse an invalid list of DnsServerInfo
-/// entries is detected.
-TEST_F(ConfigParseTest, invalidServerList) {
-    // Construct a list of servers with an invalid server entry.
-    std::string config = "[ { \"ip-address\": \"127.0.0.1\" }, "
-                        "{ \"ip-address\": \"\" }, "
-                        "{ \"ip-address\": \"127.0.0.2\" } ]";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Create the server storage and list parser.
-    DnsServerInfoStoragePtr servers(new DnsServerInfoStorage());
-    isc::dhcp::ParserPtr parser;
-    ASSERT_NO_THROW(parser.reset(new DnsServerInfoListParser("test", servers)));
-
-    // Verify that build fails.
-    EXPECT_THROW(parser->build(config_set_), D2CfgError);
-}
-
-/// @brief Verifies that a list of DnsServerInfo entries parses correctly given
-/// a valid configuration.
-TEST_F(ConfigParseTest, validServerList) {
-    // Create a valid list of servers.
-    std::string config = "[ { \"ip-address\": \"127.0.0.1\" }, "
-                        "{ \"ip-address\": \"127.0.0.2\" }, "
-                        "{ \"ip-address\": \"127.0.0.3\" } ]";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Create the server storage and list parser.
-    DnsServerInfoStoragePtr servers(new DnsServerInfoStorage());
-    isc::dhcp::ParserPtr parser;
-    ASSERT_NO_THROW(parser.reset(new DnsServerInfoListParser("test", servers)));
-
-    // Verify that the list builds and commits without error.
-    ASSERT_NO_THROW(parser->build(config_set_));
-    ASSERT_NO_THROW(parser->commit());
-
-    // Verify that the server storage contains the correct number of servers.
-    int count =  servers->size();
-    EXPECT_EQ(3, count);
-
-    // Verify the first server exists and has the correct values.
-    DnsServerInfoPtr server = (*servers)[0];
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.1",
-                            DnsServerInfo::STANDARD_DNS_PORT));
-
-    // Verify the second server exists and has the correct values.
-    server = (*servers)[1];
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.2",
-                            DnsServerInfo::STANDARD_DNS_PORT));
-
-    // Verify the third server exists and has the correct values.
-    server = (*servers)[2];
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.3",
-                            DnsServerInfo::STANDARD_DNS_PORT));
-}
-
-/// @brief Tests the enforcement of data validation when parsing DdnsDomains.
-/// It verifies that:
-/// 1. Domain storage cannot be null when constructing a DdnsDomainParser.
-/// 2. The name entry is not optional.
-/// 3. The server list man not be empty.
-/// 4. That a mal-formed server entry is detected.
-/// 5. That an undefined key name is detected.
-TEST_F(DdnsDomainTest, invalidDdnsDomainEntry) {
-    // Verify that attempting to construct the parser with null storage fails.
-    DdnsDomainMapPtr domains;
-    ASSERT_THROW(isc::dhcp::ParserPtr(
-                 new DdnsDomainParser("test", domains, keys_)), D2CfgError);
-
-    // Create a domain configuration without a name
-    std::string config = "{  \"key-name\": \"d2_key.tmark.org\" , "
-                         "  \"dns-servers\" : [ "
-                         "  {  \"ip-address\": \"127.0.0.1\" , "
-                         "    \"port\": 100 },"
-                         "  { \"ip-address\": \"127.0.0.2\" , "
-                         "    \"port\": 200 },"
-                         "  {  \"ip-address\": \"127.0.0.3\" , "
-                         "    \"port\": 300 } ] } ";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that the domain configuration builds fails.
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Create a domain configuration with an empty server list.
-    config = "{ \"name\": \"tmark.org\" , "
-             "  \"key-name\": \"d2_key.tmark.org\" , "
-             "  \"dns-servers\" : [ "
-             "   ] } ";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that the domain configuration build fails.
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-
-    // Create a domain configuration with a mal-formed server entry.
-    config = "{ \"name\": \"tmark.org\" , "
-             "  \"key-name\": \"d2_key.tmark.org\" , "
-             "  \"dns-servers\" : [ "
-             "  {  \"ip-address\": \"127.0.0.3\" , "
-             "    \"port\": -1 } ] } ";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that the domain configuration build fails.
-    EXPECT_THROW(parser_->build(config_set_), isc::BadValue);
-
-    // Create a domain configuration without an defined key name
-    config = "{ \"name\": \"tmark.org\" , "
-             "  \"key-name\": \"d2_key.tmark.org\" , "
-             "  \"dns-servers\" : [ "
-             "  {  \"ip-address\": \"127.0.0.3\" , "
-             "    \"port\": 300 } ] } ";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Verify that the domain configuration build fails.
-    EXPECT_THROW(parser_->build(config_set_), D2CfgError);
-}
-
-/// @brief Verifies the basics of parsing DdnsDomains.
-/// It verifies that:
-/// 1. Valid construction of DdnsDomainParser functions.
-/// 2. Given a valid, configuration entry, DdnsDomainParser parses
-/// correctly.
-/// (It indirectly verifies the operation of DdnsDomainMap).
-TEST_F(DdnsDomainTest, ddnsDomainParsing) {
-    // Create a valid domain configuration entry containing three valid
-    // servers.
-    std::string config =
-                        "{ \"name\": \"tmark.org\" , "
-                        "  \"key-name\": \"d2_key.tmark.org\" , "
-                        "  \"dns-servers\" : [ "
-                        "  {  \"ip-address\": \"127.0.0.1\" , "
-                        "    \"port\": 100 },"
-                        "  { \"ip-address\": \"127.0.0.2\" , "
-                        "    \"port\": 200 },"
-                        "  {  \"ip-address\": \"127.0.0.3\" , "
-                        "    \"port\": 300 } ] } ";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Add a TSIG key to the test key map, so key validation will pass.
-    addKey("d2_key.tmark.org", "HMAC-MD5", "GWG/Xfbju4O2iXGqkSu4PQ==");
-
-    // Verify that the domain configuration builds and commits without error.
-    ASSERT_NO_THROW(parser_->build(config_set_));
-    ASSERT_NO_THROW(parser_->commit());
-
-    // Verify that the domain storage contains the correct number of domains.
-    int count =  domains_->size();
-    EXPECT_EQ(1, count);
-
-    // Verify that the expected domain exists and can be retrieved from
-    // the storage.
-    DdnsDomainMap::iterator gotit = domains_->find("tmark.org");
-    ASSERT_TRUE(gotit != domains_->end());
-    DdnsDomainPtr& domain = gotit->second;
-
-    // Verify the name and key_name values.
-    EXPECT_EQ("tmark.org", domain->getName());
-    EXPECT_EQ("d2_key.tmark.org", domain->getKeyName());
-    ASSERT_TRUE(domain->getTSIGKeyInfo());
-    ASSERT_TRUE(domain->getTSIGKeyInfo()->getTSIGKey());
-
-    // Verify that the server list exists and contains the correct number of
-    // servers.
-    const DnsServerInfoStoragePtr& servers = domain->getServers();
-    EXPECT_TRUE(servers);
-    count =  servers->size();
-    EXPECT_EQ(3, count);
-
-    // Fetch each server and verify its contents.
-    DnsServerInfoPtr server = (*servers)[0];
-    EXPECT_TRUE(server);
-
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.1", 100));
-
-    server = (*servers)[1];
-    EXPECT_TRUE(server);
-
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.2", 200));
-
-    server = (*servers)[2];
-    EXPECT_TRUE(server);
-
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.3", 300));
-}
-
-/// @brief Tests the fundamentals of parsing DdnsDomain lists.
-/// This test verifies that given a valid domain list configuration
-/// it will accurately parse and populate each domain in the list.
-TEST_F(DdnsDomainTest, DdnsDomainListParsing) {
-    // Create a valid domain list configuration, with two domains
-    // that have three servers each.
-    std::string config =
-                        "[ "
-                        "{ \"name\": \"tmark.org\" , "
-                        "  \"key-name\": \"d2_key.tmark.org\" , "
-                        "  \"dns-servers\" : [ "
-                        "  { \"ip-address\": \"127.0.0.1\" , "
-                        "    \"port\": 100 },"
-                        "  { \"ip-address\": \"127.0.0.2\" , "
-                        "    \"port\": 200 },"
-                        "  { \"ip-address\": \"127.0.0.3\" , "
-                        "    \"port\": 300 } ] } "
-                        ", "
-                        "{ \"name\": \"billcat.net\" , "
-                        "  \"key-name\": \"d2_key.billcat.net\" , "
-                        "  \"dns-servers\" : [ "
-                        "  { \"ip-address\": \"127.0.0.4\" , "
-                        "    \"port\": 400 },"
-                        "  { \"ip-address\": \"127.0.0.5\" , "
-                        "    \"port\": 500 },"
-                        "  { \"ip-address\": \"127.0.0.6\" , "
-                        "    \"port\": 600 } ] } "
-                        "] ";
-
-    ASSERT_TRUE(fromJSON(config));
-
-    // Add keys to key map so key validation passes.
-    addKey("d2_key.tmark.org", "HMAC-MD5", "GWG/Xfbju4O2iXGqkSu4PQ==");
-    addKey("d2_key.billcat.net", "HMAC-MD5", "GWG/Xfbju4O2iXGqkSu4PQ==");
-
-    // Create the list parser
-    isc::dhcp::ParserPtr list_parser;
-    ASSERT_NO_THROW(list_parser.reset(
-                    new DdnsDomainListParser("test", domains_, keys_)));
-
-    // Verify that the domain configuration builds and commits without error.
-    ASSERT_NO_THROW(list_parser->build(config_set_));
-    ASSERT_NO_THROW(list_parser->commit());
-
-    // Verify that the domain storage contains the correct number of domains.
-    int count =  domains_->size();
-    EXPECT_EQ(2, count);
-
-    // Verify that the first domain exists and can be retrieved.
-    DdnsDomainMap::iterator gotit = domains_->find("tmark.org");
-    ASSERT_TRUE(gotit != domains_->end());
-    DdnsDomainPtr& domain = gotit->second;
-
-    // Verify the name and key_name values of the first domain.
-    EXPECT_EQ("tmark.org", domain->getName());
-    EXPECT_EQ("d2_key.tmark.org", domain->getKeyName());
-    ASSERT_TRUE(domain->getTSIGKeyInfo());
-    ASSERT_TRUE(domain->getTSIGKeyInfo()->getTSIGKey());
-
-    // Verify the each of the first domain's servers
-    DnsServerInfoStoragePtr servers = domain->getServers();
-    EXPECT_TRUE(servers);
-    count =  servers->size();
-    EXPECT_EQ(3, count);
-
-    DnsServerInfoPtr server = (*servers)[0];
-    EXPECT_TRUE(server);
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.1", 100));
-
-    server = (*servers)[1];
-    EXPECT_TRUE(server);
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.2", 200));
-
-    server = (*servers)[2];
-    EXPECT_TRUE(server);
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.3", 300));
-
-    // Verify second domain
-    gotit = domains_->find("billcat.net");
-    ASSERT_TRUE(gotit != domains_->end());
-    domain = gotit->second;
-
-    // Verify the name and key_name values of the second domain.
-    EXPECT_EQ("billcat.net", domain->getName());
-    EXPECT_EQ("d2_key.billcat.net", domain->getKeyName());
-    ASSERT_TRUE(domain->getTSIGKeyInfo());
-    ASSERT_TRUE(domain->getTSIGKeyInfo()->getTSIGKey());
-
-    // Verify the each of second domain's servers
-    servers = domain->getServers();
-    EXPECT_TRUE(servers);
-    count =  servers->size();
-    EXPECT_EQ(3, count);
-
-    server = (*servers)[0];
-    EXPECT_TRUE(server);
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.4", 400));
-
-    server = (*servers)[1];
-    EXPECT_TRUE(server);
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.5", 500));
-
-    server = (*servers)[2];
-    EXPECT_TRUE(server);
-    EXPECT_TRUE(checkServer(server, "", "127.0.0.6", 600));
-}
-
-/// @brief Tests that a domain list configuration cannot contain duplicates.
-TEST_F(DdnsDomainTest, duplicateDomain) {
-    // Create a domain list configuration that contains two domains with
-    // the same name.
-    std::string config =
-                        "[ "
-                        "{ \"name\": \"tmark.org\" , "
-                        "  \"dns-servers\" : [ "
-                        "  { \"ip-address\": \"127.0.0.3\" , "
-                        "    \"port\": 300 } ] } "
-                        ", "
-                        "{ \"name\": \"tmark.org\" , "
-                        "  \"dns-servers\" : [ "
-                        "  { \"ip-address\": \"127.0.0.3\" , "
-                        "    \"port\": 300 } ] } "
-                        "] ";
-    ASSERT_TRUE(fromJSON(config));
-
-    // Create the list parser
-    isc::dhcp::ParserPtr list_parser;
-    ASSERT_NO_THROW(list_parser.reset(
-                    new DdnsDomainListParser("test", domains_, keys_)));
-
-    // Verify that the parse build fails.
-    EXPECT_THROW(list_parser->build(config_set_), D2CfgError);
-}
+// DdnsDomainList and TSIGKey tests moved to d2_simple_parser_unittest.cc
 
 /// @brief Tests construction of D2CfgMgr
 /// This test verifies that a D2CfgMgr constructs properly.

+ 1 - 1
src/bin/d2/tests/d2_simple_parser_unittest.cc

@@ -946,7 +946,7 @@ TEST_F(DdnsDomainParserTest, invalidDomain) {
                          "    \"port\": 200 },"
                          "  {  \"ip-address\": \"127.0.0.3\" , "
                          "    \"port\": 300 } ] } ";
-    PARSE_FAIL(config, "String parameter name not found(<string>:1:1)");
+    PARSE_FAIL(config, "missing parameter 'name' (<string>:1:1)");
 
     // Create a domain configuration with an empty server list.
     config = "{ \"name\": \"example.com\" , "

+ 1 - 1
src/bin/d2/tests/parser_unittest.cc

@@ -263,7 +263,7 @@ void testFile(const std::string& fname) {
     ElementPtr reference_json;
     ConstElementPtr test_json;
 
-    string decommented = dhcp::test::decommentJSONfile(fname);
+    string decommented = isc::test::decommentJSONfile(fname);
     EXPECT_NO_THROW(reference_json = Element::fromJSONFile(decommented, true));
 
     // remove the temporary file

+ 3 - 3
src/bin/d2/tests/testdata/d2_cfg_tests.json

@@ -315,7 +315,7 @@
 #-----
 ,{
 "description" : "D2.tsig-keys, missing key name",
-"logic-error" : "element: tsig-keys : String parameter name not found(<string>:1:62)<string>:1:47",
+"logic-error" : "element: tsig-keys : missing parameter 'name' (<string>:1:62)<string>:1:47",
 "data" :
     {
     "forward-ddns" : {},
@@ -420,7 +420,7 @@
 #----- D2.tsig-keys, algorithm tests
 ,{
 "description" : "D2.tsig-keys, missing algorithm",
-"logic-error" : "element: tsig-keys : String parameter algorithm not found(<string>:1:62)<string>:1:47",
+"logic-error" : "element: tsig-keys : missing parameter 'algorithm' (<string>:1:62)<string>:1:47",
 "data" :
     {
     "forward-ddns" : {},
@@ -665,7 +665,7 @@
 #----- D2.tsig-keys, secret tests
 ,{
 "description" : "D2.tsig-keys, missing secret",
-"logic-error" : "element: tsig-keys : String parameter secret not found(<string>:1:62)<string>:1:47",
+"logic-error" : "element: tsig-keys : missing parameter 'secret' (<string>:1:62)<string>:1:47",
 "data" :
     {
     "forward-ddns" : {},