nlsr: implement NameLsa::isEqualContent
Change-Id: Ibf9021144f5ff253515875ac61de97740a1fecd7
refs: #2962
diff --git a/src/lsa.cpp b/src/lsa.cpp
index 52a9948..46dc1c4 100644
--- a/src/lsa.cpp
+++ b/src/lsa.cpp
@@ -112,6 +112,12 @@
return true;
}
+bool
+NameLsa::isEqualContent(const NameLsa& other) const
+{
+ return m_npl == other.getNpl();
+}
+
void
NameLsa::writeLog()
{
diff --git a/src/lsa.hpp b/src/lsa.hpp
index 934ba40..9d4f89f 100644
--- a/src/lsa.hpp
+++ b/src/lsa.hpp
@@ -127,6 +127,12 @@
return m_npl;
}
+ const NamePrefixList&
+ getNpl() const
+ {
+ return m_npl;
+ }
+
void
addName(const ndn::Name& name)
{
@@ -166,6 +172,9 @@
bool
initializeFromContent(const std::string& content);
+ bool
+ isEqualContent(const NameLsa& other) const;
+
void
writeLog();
@@ -346,4 +355,4 @@
} // namespace nlsr
-#endif //NLSR_LSA_HPP
+#endif // NLSR_LSA_HPP
diff --git a/src/name-prefix-list.cpp b/src/name-prefix-list.cpp
index 37c66dc..ec52068 100644
--- a/src/name-prefix-list.cpp
+++ b/src/name-prefix-list.cpp
@@ -77,6 +77,12 @@
return false;
}
+bool
+NamePrefixList::operator==(const NamePrefixList& other) const
+{
+ return m_nameList == other.getNameList();
+}
+
void
NamePrefixList::sort()
{
@@ -95,4 +101,14 @@
}
}
+std::ostream&
+operator<<(std::ostream& os, const NamePrefixList& list) {
+ os << "Name prefix list: {\n";
+ for (const auto& name : list.getNameList()) {
+ os << name << "\n";
+ }
+ os << "}" << std::endl;
+ return os;
+}
+
} // namespace nlsr
diff --git a/src/name-prefix-list.hpp b/src/name-prefix-list.hpp
index 77f0801..12669ce 100644
--- a/src/name-prefix-list.hpp
+++ b/src/name-prefix-list.hpp
@@ -66,6 +66,15 @@
return m_nameList;
}
+ const std::list<ndn::Name>&
+ getNameList() const
+ {
+ return m_nameList;
+ }
+
+ bool
+ operator==(const NamePrefixList& other) const;
+
void
writeLog();
@@ -74,6 +83,9 @@
};
+std::ostream&
+operator<<(std::ostream& os, const NamePrefixList& list);
+
} // namespace nlsr
-#endif //NLSR_NAME_PREFIX_LIST_HPP
+#endif // NLSR_NAME_PREFIX_LIST_HPP
diff --git a/tests/test-lsa.cpp b/tests/test-lsa.cpp
index 4b683c8..642a317 100644
--- a/tests/test-lsa.cpp
+++ b/tests/test-lsa.cpp
@@ -208,6 +208,29 @@
BOOST_CHECK_EQUAL(clsa1.getData(), clsa2.getData());
}
+BOOST_AUTO_TEST_SUITE(TestNameLsa)
+
+BOOST_AUTO_TEST_CASE(OperatorEquals)
+{
+ NameLsa lsa1;
+ NameLsa lsa2;
+ ndn::Name name1("/ndn/test/name1");
+ ndn::Name name2("/ndn/test/name2");
+ ndn::Name name3("/ndn/some/other/name1");
+
+ lsa1.addName(name1);
+ lsa1.addName(name2);
+ lsa1.addName(name3);
+
+ lsa2.addName(name1);
+ lsa2.addName(name2);
+ lsa2.addName(name3);
+
+ BOOST_CHECK(lsa1.isEqualContent(lsa2));
+}
+
+BOOST_AUTO_TEST_SUITE_END() // TestNameLsa
+
BOOST_AUTO_TEST_SUITE_END()
} // namespace test
diff --git a/tests/test-name-prefix-list.cpp b/tests/test-name-prefix-list.cpp
index 45bcd38..b07517f 100644
--- a/tests/test-name-prefix-list.cpp
+++ b/tests/test-name-prefix-list.cpp
@@ -46,6 +46,25 @@
BOOST_CHECK_EQUAL(npl1.getSize(), 1);
}
+BOOST_AUTO_TEST_CASE(OperatorEquals)
+{
+ NamePrefixList list1;
+ NamePrefixList list2;
+ ndn::Name name1("/ndn/test/name1");
+ ndn::Name name2("/ndn/test/name2");
+ ndn::Name name3("/ndn/some/other/name1");
+
+ list1.insert(name1);
+ list1.insert(name2);
+ list1.insert(name3);
+
+ list2.insert(name1);
+ list2.insert(name2);
+ list2.insert(name3);
+
+ BOOST_CHECK_EQUAL(list1, list2);
+}
+
BOOST_AUTO_TEST_SUITE_END()
} // namespace test