|
@@ -1,79 +0,0 @@
|
|
-#include <config.h>
|
|
|
|
-#include <cc/data.h>
|
|
|
|
-#include <gtest/gtest.h>
|
|
|
|
-
|
|
|
|
-using namespace isc;
|
|
|
|
-using namespace isc::data;
|
|
|
|
-
|
|
|
|
-namespace {
|
|
|
|
-
|
|
|
|
-/// @brief DHCP Parser test fixture class
|
|
|
|
-class SimpleParser6Test : public ::testing::Test {
|
|
|
|
-
|
|
|
|
- /// @brief Checks if specified map has an integer parameter with expected value
|
|
|
|
- ///
|
|
|
|
- /// @param map map to be checked
|
|
|
|
- /// @param param_name name of the parameter to be checked
|
|
|
|
- /// @param exp_value expected value of the parameter.
|
|
|
|
- void checkIntegerValue(const ConstElementPtr& map, const std::string& param_name,
|
|
|
|
- int64_t exp_value) {
|
|
|
|
-
|
|
|
|
- // First check if the passed element is a map.
|
|
|
|
- ASSERT_EQ(Element::map, map->getType());
|
|
|
|
-
|
|
|
|
- // Now try to get the element being checked
|
|
|
|
- ConstElementPtr elem = map->get(param_name);
|
|
|
|
- ASSERT_TRUE(elem);
|
|
|
|
-
|
|
|
|
- // Now check if it's indeed integer
|
|
|
|
- ASSERT_EQ(Element::integer, elem->getType());
|
|
|
|
-
|
|
|
|
- // Finally, check if its value meets expectation.
|
|
|
|
- EXPECT_EQ(exp_value, elem->intValue());
|
|
|
|
- }
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-// This test checks if global defaults are properly set for DHCPv6.
|
|
|
|
-TEST_F(SimpleParser6Test, globalDefaults6) {
|
|
|
|
-
|
|
|
|
- ElementPtr empty = Element::fromJSON("{ }");
|
|
|
|
- size_t num;
|
|
|
|
-
|
|
|
|
- EXPECT_NO_THROW(num = SimpleParser6::setDefaults(empty));
|
|
|
|
-
|
|
|
|
- // We expect at least 4 parameters to be inserted.
|
|
|
|
- EXPECT_TRUE(num >= 4);
|
|
|
|
-
|
|
|
|
- checkIntegerValue(empty, "valid-lifetime", 7200);
|
|
|
|
- checkIntegerValue(empty, "preferred-lifetime", 3600);
|
|
|
|
- checkIntegerValue(empty, "rebind-timer", 1800);
|
|
|
|
- checkIntegerValue(empty, "renew-timer", 900);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// This test checks if the parameters can be inherited from the global
|
|
|
|
-// scope to the subnet scope.
|
|
|
|
-TEST_F(SimpleParser6Test, inheritGlobalToSubnet6) {
|
|
|
|
- ElementPtr global = Element::fromJSON("{ \"renew-timer\": 1,"
|
|
|
|
- " \"rebind-timer\": 2,"
|
|
|
|
- " \"preferred-lifetime\": 3,"
|
|
|
|
- " \"valid-lifetime\": 4"
|
|
|
|
- "}");
|
|
|
|
- ElementPtr subnet = Element::fromJSON("{ \"renew-timer\": 100 }");
|
|
|
|
-
|
|
|
|
- // we should inherit 3 parameters. Renew-timer should remain intact,
|
|
|
|
- // as it was already defined in the subnet scope.
|
|
|
|
- size_t num;
|
|
|
|
- EXPECT_NO_THROW(num = SimpleParser::deriveParams(global, subnet,
|
|
|
|
- SimpleParser6::INHERIT_GLOBAL_TO_SUBNET6));
|
|
|
|
- EXPECT_EQ(3, num);
|
|
|
|
-
|
|
|
|
- // Check the values. 3 of them are interited, while the fourth one
|
|
|
|
- // was already defined in the subnet, so should not be inherited.
|
|
|
|
- checkIntegerValue(subnet, "renew-timer", 100);
|
|
|
|
- checkIntegerValue(subnet, "rebind-timer", 2);
|
|
|
|
- checkIntegerValue(subnet, "preferred-lifetime", 3);
|
|
|
|
- checkIntegerValue(subnet, "valid-lifetime", 4);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-};
|
|
|
|
-
|
|
|