}
}
-
// This test checks the pretty print function.
TEST(Element, prettyPrint) {
EXPECT_NE(left->boolValue(), right->boolValue());
mergeDiffAdd(left, right, hierarchy, "");
EXPECT_EQ(left->boolValue(), right->boolValue());
- EXPECT_EQ(left->str(), "false");
+ std::string expected_str("false");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar int");
EXPECT_NE(left->intValue(), right->intValue());
mergeDiffAdd(left, right, hierarchy, "");
EXPECT_EQ(left->intValue(), right->intValue());
- EXPECT_EQ(left->str(), "2");
+ std::string expected_str("2");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar double");
EXPECT_NE(left->doubleValue(), right->doubleValue());
mergeDiffAdd(left, right, hierarchy, "");
EXPECT_EQ(left->doubleValue(), right->doubleValue());
- EXPECT_EQ(left->str(), "0.2");
+ std::string expected_str("0.2");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar string");
EXPECT_NE(left->stringValue(), right->stringValue());
mergeDiffAdd(left, right, hierarchy, "");
EXPECT_EQ(left->stringValue(), right->stringValue());
- EXPECT_EQ(left->str(), "\"right\"");
+ std::string expected_str("\"right\"");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar in map");
right->set("elements", Element::create("right"));
// scalar element which is added
right->set("new-elements", Element::create("new"));
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffAdd(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "{ \"elements\": \"right\", \"new-elements\": \"new\", \"other-elements\": \"other\" }");
+ std::string expected_str("{ \"elements\": \"right\", \"new-elements\": \"new\", \"other-elements\": \"other\" }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar in list");
right->add(Element::create("new"));
// scalar element which already exists but is still added
right->add(Element::create("test"));
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffAdd(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "[ \"left\", \"other\", \"test\", \"right\", \"new\", \"test\" ]");
+ std::string expected_str("[ \"left\", \"other\", \"test\", \"right\", \"new\", \"test\" ]");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar and list and map in map");
left->set("other", left_other_left);
// list element which is updated
right->set("other", right_other_right);
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffAdd(left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "{ \"elements\": { \"elements\": \"right\", \"id\": 0, \"new-elements\": \"new\", \"other-elements\": \"other\" }, "
+ std::string expected_str("{ \"elements\": { \"elements\": \"right\", \"id\": 0, \"new-elements\": \"new\", \"other-elements\": \"other\" }, "
"\"left-other-elements\": { \"elements\": \"other-left\", \"id\": 1 }, "
"\"other\": [ \"left-other-left\", \"left-other-left-other\", \"other-other\", \"right-other-right\", \"right-other-right-other\", \"other-other\" ], "
"\"right-other-elements\": { \"elements\": \"other-right\", \"id\": 2 } }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar and list and map in list");
left_left->set("other", left_other_left);
// list element which is updated
right_right->set("other", right_other_right);
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffAdd(left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "[ { \"elements\": \"right\", \"id\": 0, \"new-elements\": \"new\", "
+ std::string expected_str("[ { \"elements\": \"right\", \"id\": 0, \"new-elements\": \"new\", "
"\"other\": [ \"left-other-left\", \"left-other-left-other\", \"other-other\", \"right-other-right\", \"right-other-right-other\", \"other-other\" ], "
"\"other-elements\": \"other\" }, "
"{ \"elements\": \"other-left\", \"id\": 1 }, "
"{ \"elements\": \"other-right\", \"id\": 2 } ]");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
}
ElementPtr right = Element::create(false);
EXPECT_NE(left->boolValue(), right->boolValue());
mergeDiffDel(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "null");
+ EXPECT_EQ(left->getType(), Element::null);
}
{
SCOPED_TRACE("scalar int");
ElementPtr right = Element::create(2);
EXPECT_NE(left->intValue(), right->intValue());
mergeDiffDel(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "null");
+ EXPECT_EQ(left->getType(), Element::null);
}
{
SCOPED_TRACE("scalar double");
ElementPtr right = Element::create(0.2);
EXPECT_NE(left->doubleValue(), right->doubleValue());
mergeDiffDel(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "null");
+ EXPECT_EQ(left->getType(), Element::null);
}
{
SCOPED_TRACE("scalar string");
ElementPtr right = Element::create("right");
EXPECT_NE(left->stringValue(), right->stringValue());
mergeDiffDel(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "null");
+ EXPECT_EQ(left->getType(), Element::null);
}
{
SCOPED_TRACE("scalar in map");
right->set("elements", Element::create("right"));
// scalar element which does not exist and does nothing
right->set("new-elements", Element::create("new"));
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffDel(left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "{ \"other-elements\": \"other\" }");
+ std::string expected_str("{ \"other-elements\": \"other\" }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar in list");
right->add(Element::create("other-right"));
// scalar element which is removed
right->add(Element::create("new"));
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffDel(left, right, hierarchy, "");
- EXPECT_EQ(left->str(), "[ \"left\", \"other-left\" ]");
+ std::string expected_str("[ \"left\", \"other-left\" ]");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar and list and map in map");
// map element which is not removed because it is contained in a map and
// the key can not be removed
right->set("elements-other", right_right);
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffDel(left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "{ \"elements\": { \"id\": 0, \"other-elements\": \"other\" }, "
+ std::string expected_str("{ \"elements\": { \"id\": 0, \"other-elements\": \"other\" }, "
"\"elements-other\": { \"elements\": \"new-left\", \"id\": 3, \"other-elements\": \"new-other\" }, "
"\"left-other-elements\": { \"elements\": \"other-left\", \"id\": 1 }, "
"\"other\": [ \"left-other-left\", \"left-other-left-other\" ] }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar and list and map in list");
// map element which is removed by key
// the key can not be removed
right->add(right_right);
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
mergeDiffDel(left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "[ { \"id\": 0, \"other\": [ \"left-other-left\", \"left-other-left-other\" ], \"other-elements\": \"other\" }, "
+ std::string expected_str("[ { \"id\": 0, \"other\": [ \"left-other-left\", \"left-other-left-other\" ], \"other-elements\": \"other\" }, "
"{ \"elements\": \"other-left\", \"id\": 1 } ]");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
}
right->set("elements", Element::create("right"));
// scalar element which is extended
right->set("new-elements", Element::create("new"));
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
extend("root", "new-elements", left, right, hierarchy, "root", 0, false);
- EXPECT_EQ(left->str(), "{ \"elements\": \"left\", \"other-elements\": \"other\" }");
+ std::string expected_str("{ \"elements\": \"left\", \"other-elements\": \"other\" }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar in map");
right->set("elements", Element::create("right"));
// scalar element which is extended
right->set("new-elements", Element::create("new"));
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
extend("root", "new-elements", left, right, hierarchy, "root", 0, true);
- EXPECT_EQ(left->str(), "{ \"elements\": \"left\", \"new-elements\": \"new\", \"other-elements\": \"other\" }");
+ std::string expected_str("{ \"elements\": \"left\", \"new-elements\": \"new\", \"other-elements\": \"other\" }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar in map in map");
left->set("elements", left_left);
// map element which is used for extension
right->set("elements", right_right);
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
extend("root", "new-elements", left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "{ \"elements\": { \"elements\": \"left\", \"id\": 0, \"new-elements\": \"new\", \"other-elements\": \"other\" } }");
+ std::string expected_str("{ \"elements\": { \"elements\": \"left\", \"id\": 0, \"new-elements\": \"new\", \"other-elements\": \"other\" } }");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
{
SCOPED_TRACE("scalar in map in list");
left->add(left_left);
// map element which is used for extension
right->add(right_right);
- EXPECT_NE(left->str(), right->str());
+ ASSERT_FALSE(isc::data::isEquivalent(left, right));
extend("root", "new-elements", left, right, hierarchy, "root");
- EXPECT_EQ(left->str(), "[ { \"elements\": \"left\", \"id\": 0, \"new-elements\": \"new\", \"other-elements\": \"other\" } ]");
+ std::string expected_str("[ { \"elements\": \"left\", \"id\": 0, \"new-elements\": \"new\", \"other-elements\": \"other\" } ]");
+ ElementPtr expected = Element::fromJSON(expected_str);
+ EXPECT_TRUE(isc::data::isEquivalent(left, expected))
+ << "Actual: " << left->str()
+ << "\nExpected: " << expected->str();
}
}