tests: Adding unit tests.
The purpose of this commit is to start pushing unit test I am writing. I will add more unit tests in each patch
Refs: #1496
Change-Id: Ic132adddfa06a95780712eba63966d3bab4743af
diff --git a/tests/test-lsa.cpp b/tests/test-lsa.cpp
new file mode 100644
index 0000000..715d19e
--- /dev/null
+++ b/tests/test-lsa.cpp
@@ -0,0 +1,80 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "lsa.hpp"
+#include "name-prefix-list.hpp"
+#include "adjacent.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+namespace test {
+BOOST_AUTO_TEST_SUITE(TestLsa)
+
+BOOST_AUTO_TEST_CASE(NameLsaBasic)
+{
+ NamePrefixList npl1;
+
+ std::string s1 = "name1";
+ std::string s2 = "name2";
+
+ npl1.insert(s1);
+ npl1.insert(s2);
+
+//lsType is 1 for NameLsa, 3rd arg is seqNo. which will be a random number I just put in 12.
+//1800 is default lsa refresh time.
+ NameLsa nlsa1("router1", 1, 12, 1800, npl1);
+ NameLsa nlsa2("router2", 1, 12, 1500, npl1);
+
+ BOOST_CHECK_EQUAL(nlsa1.getLsType(), 1);
+
+ BOOST_CHECK(nlsa1.getLifeTime() != nlsa2.getLifeTime());
+
+ BOOST_CHECK(nlsa1.getKey() != nlsa2.getKey());
+}
+
+BOOST_AUTO_TEST_CASE(AdjacentLsaConstructorAndGetters)
+{
+ Adjacent adj1("adjacent");
+ Adjacent adj2("adjacent2");
+
+ AdjacencyList adjList;
+ adjList.insert(adj1);
+
+//For AdjLsa, lsType is 2.
+//1 is the number of adjacent in adjacent list.
+ AdjLsa alsa1("router1", 2, 12, 1800, 1, adjList);
+ AdjLsa alsa2("router1", 2, 12, 1800, 1, adjList);
+
+ BOOST_CHECK_EQUAL(alsa1.getLsType(), 2);
+ BOOST_CHECK_EQUAL(alsa1.getLsSeqNo(), 12);
+ BOOST_CHECK_EQUAL(alsa1.getLifeTime(), 1800);
+ BOOST_CHECK_EQUAL(alsa1.getNoLink(), 1);
+
+ BOOST_CHECK(alsa1.isEqual(alsa2));
+
+ alsa1.addAdjacent(adj2);
+
+ const std::string ADJACENT_1 = "adjacent2";
+ BOOST_CHECK(alsa1.getAdl().isNeighbor(ADJACENT_1));
+}
+
+BOOST_AUTO_TEST_CASE(CoordinateLsaConstructorAndGetters)
+{
+//For CoordinateLsa, lsType is 3.
+ CoordinateLsa clsa1("router1", 3, 12, 1800, 2.5, 30.0);
+ CoordinateLsa clsa2("router1", 3, 12, 1800, 2.5, 30.0);
+
+ BOOST_CHECK_CLOSE(clsa1.getCorRadius(), 2.5, 0.0001);
+ BOOST_CHECK_CLOSE(clsa1.getCorTheta(), 30.0, 0.0001);
+
+ BOOST_CHECK(clsa1.isEqual(clsa2));
+
+ BOOST_CHECK_EQUAL(clsa1.getData(), clsa2.getData());
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr