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-adjacency-list.cpp b/tests/test-adjacency-list.cpp
new file mode 100644
index 0000000..757c145
--- /dev/null
+++ b/tests/test-adjacency-list.cpp
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "adjacency-list.hpp"
+#include "adjacent.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+using namespace std;
+
+BOOST_AUTO_TEST_SUITE(TestAdjacenctList)
+
+BOOST_AUTO_TEST_CASE(AdjacenctListBasic)
+{
+  const string ADJ_NAME_1 = "testname";
+  const string ADJ_NAME_2 = "testname2";
+
+//adjacent needed to test adjacency list.
+  Adjacent adjacent1(ADJ_NAME_1);
+  Adjacent adjacent2(ADJ_NAME_2);
+
+  adjacent1.setLinkCost(4);
+  adjacent2.setLinkCost(5);
+
+  AdjacencyList adjacentList1;
+  AdjacencyList adjacentList2;
+
+  adjacentList1.insert(adjacent1);
+  adjacentList2.insert(adjacent2);
+
+  BOOST_CHECK_EQUAL(adjacentList1.getSize(), 1);
+  BOOST_CHECK_EQUAL(adjacentList1.isEqual(adjacentList2), false);
+
+  BOOST_CHECK(adjacentList1.isNeighbor("testname"));
+  BOOST_CHECK_EQUAL(adjacentList1.isNeighbor("adjacent"), false);
+
+  string n1 = "testname";
+  BOOST_CHECK_EQUAL(adjacentList1.getStatusOfNeighbor(n1), 0);
+
+  adjacentList1.setStatusOfNeighbor(n1, 1);
+  BOOST_CHECK_EQUAL(adjacentList1.getStatusOfNeighbor(n1), 1);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace tests
+} //namespace nlsr
diff --git a/tests/test-adjacent.cpp b/tests/test-adjacent.cpp
new file mode 100644
index 0000000..90be869
--- /dev/null
+++ b/tests/test-adjacent.cpp
@@ -0,0 +1,36 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "adjacent.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+using namespace std;
+
+BOOST_AUTO_TEST_SUITE(TestAdjacenct)
+
+BOOST_AUTO_TEST_CASE(AdjacenctBasic)
+{
+  const string ADJ_NAME_1 = "testname";
+  const string ADJ_NAME_2 = "testname";
+
+  Adjacent adjacent1(ADJ_NAME_1);
+  Adjacent adjacent2(ADJ_NAME_2);
+  BOOST_CHECK(adjacent1.isEqual(adjacent2));
+
+  adjacent1.setLinkCost(10.5);
+  BOOST_CHECK_CLOSE(adjacent1.getLinkCost(), 10.5, 0.0001);
+
+  BOOST_CHECK_EQUAL(adjacent1.getName(), "testname");
+
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace tests
+} //namespace nlsr
diff --git a/tests/test-conf-file-processor.cpp b/tests/test-conf-file-processor.cpp
new file mode 100644
index 0000000..7b87fac
--- /dev/null
+++ b/tests/test-conf-file-processor.cpp
@@ -0,0 +1,59 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "conf-file-processor.hpp"
+#include "nlsr.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestConfFileProcessor)
+
+BOOST_AUTO_TEST_CASE(ConfFileProcessorSample)
+{
+  Nlsr nlsr1;
+
+  const std::string CONFIG =
+    "network ndn\n"
+    "site-name memphis.edu\n"
+    "router-name cs/macbook\n\n"
+    "ndnneighbor /ndn/memphis.edu/cs/maia 7\n"
+    "link-cost /ndn/memphis.edu/cs/maia 30\n"
+    "ndnneighbor /ndn/memphis.edu/cs/pollux 10\n"
+    "link-cost /ndn/memphis.edu/cs/pollux 25\n\n"
+    "ndnname /ndn/memphis.edu/cs/macbook/name1\n"
+    "ndnname /ndn/memphis.edu/cs/macbook/name2\n\n\n"
+    ;
+
+  ofstream config;
+  config.open("unit-test-nlsr.conf");
+  config << CONFIG;
+  config.close();
+
+  const string CONFIG_FILE = "unit-test-nlsr.conf";
+
+  ConfFileProcessor cfp1(nlsr1, CONFIG_FILE);
+
+  cfp1.processConfFile();
+
+  BOOST_CHECK(nlsr1.getAdjacencyList().isNeighbor("/ndn/memphis.edu/cs/maia"));
+  BOOST_CHECK_EQUAL(
+    nlsr1.getAdjacencyList().getAdjacent("/ndn/memphis.edu/cs/maia").getName(),
+    "/ndn/memphis.edu/cs/maia");
+  BOOST_CHECK_EQUAL(
+    nlsr1.getAdjacencyList().getAdjacent("/ndn/memphis.edu/cs/maia").getLinkCost(),
+    30);
+
+  BOOST_CHECK_EQUAL(nlsr1.getNamePrefixList().getSize(), 2);
+
+  remove("unit-test-nlsr.conf");
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-conf-parameter.cpp b/tests/test-conf-parameter.cpp
new file mode 100644
index 0000000..e376084
--- /dev/null
+++ b/tests/test-conf-parameter.cpp
@@ -0,0 +1,116 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "conf-parameter.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+using namespace std;
+
+BOOST_AUTO_TEST_SUITE(TestConfParameter)
+
+BOOST_AUTO_TEST_CASE(ConfParameterSettersAndGetters)
+{
+  ConfParameter cp1;
+
+  const string NAME = "router1";
+  const string SITE = "memphis";
+  const string NETWORK = "ATT";
+
+  cp1.setRouterName(NAME);
+
+  cp1.setSiteName(SITE);
+
+  cp1.setNetwork(NETWORK);
+
+  cp1.setRootKeyPrefix("adminRootKey");
+
+  cp1.setInterestRetryNumber(2);
+
+  cp1.setInterestResendTime(1000);
+
+  cp1.setLsaRefreshTime(1500);
+
+  cp1.setRouterDeadInterval(10);
+
+  cp1.setMaxFacesPerPrefix(50);
+
+  cp1.setLogDir("log");
+
+  cp1.setCertDir("cert");
+
+  cp1.setSeqFileDir("ssfd");
+
+  cp1.setDetailedLogging(1);
+
+  cp1.setDebugging(1);
+
+  cp1.setIsHyperbolicCalc(1);
+
+  cp1.setCorR(2.5);
+
+  cp1.setCorTheta(102.5);
+
+  cp1.setTunnelType(2);
+
+  const string a = "csp";
+  cp1.setChronosyncSyncPrefix(a);
+
+  cp1.setChronosyncLsaPrefix("cla");
+
+  cp1.setInfoInterestInterval(3);
+
+  BOOST_CHECK_EQUAL(cp1.getRouterName(), "router1");
+
+  BOOST_CHECK_EQUAL(cp1.getSiteName(), "memphis");
+
+  BOOST_CHECK_EQUAL(cp1.getNetwork(), "ATT");
+
+  cp1.buildRouterPrefix();
+
+  BOOST_CHECK_EQUAL(cp1.getRouterPrefix(), "/ATT/memphis/router1");
+
+  BOOST_CHECK_EQUAL(cp1.getRootKeyPrefix(), "adminRootKey");
+
+  BOOST_CHECK_EQUAL(cp1.getInterestRetryNumber(), 2);
+
+  BOOST_CHECK_EQUAL(cp1.getInterestResendTime(), 1000);
+
+  BOOST_CHECK_EQUAL(cp1.getLsaRefreshTime(), 1500);
+
+  BOOST_CHECK_EQUAL(cp1.getRouterDeadInterval(), 10);
+
+  BOOST_CHECK_EQUAL(cp1.getMaxFacesPerPrefix(), 50);
+
+  BOOST_CHECK_EQUAL(cp1.getLogDir(), "log");
+
+  BOOST_CHECK_EQUAL(cp1.getCertDir(), "cert");
+
+  BOOST_CHECK_EQUAL(cp1.getSeqFileDir(), "ssfd");
+
+  BOOST_CHECK_EQUAL(cp1.getDetailedLogging(), 1);
+
+  BOOST_CHECK_EQUAL(cp1.getDebugging(), 1);
+
+  BOOST_CHECK_EQUAL(cp1.getIsHyperbolicCalc(), 1);
+
+  BOOST_CHECK_CLOSE(cp1.getCorTheta(), 102.5, 0.0001);
+
+  BOOST_CHECK_EQUAL(cp1.getTunnelType(), 2);
+
+  BOOST_CHECK_EQUAL(cp1.getChronosyncSyncPrefix(), "csp");
+
+  BOOST_CHECK_EQUAL(cp1.getChronosyncLsaPrefix(), "cla");
+
+  BOOST_CHECK_EQUAL(cp1.getInfoInterestInterval(), 3);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} // namespace test
+} // namespace nlsr
diff --git a/tests/test-fib-entry.cpp b/tests/test-fib-entry.cpp
new file mode 100644
index 0000000..1a908a3
--- /dev/null
+++ b/tests/test-fib-entry.cpp
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/fib-entry.hpp"
+#include "route/nexthop-list.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestFibEntry)
+
+BOOST_AUTO_TEST_CASE(FibEntryConstructorAndGetters)
+{
+  FibEntry fe1("next1");
+
+  BOOST_CHECK_EQUAL(fe1.getName(), "next1");
+  BOOST_CHECK_EQUAL(fe1.getTimeToRefresh(), 0);   //Default Time
+  BOOST_CHECK_EQUAL(fe1.getSeqNo(), 0);           //Default Seq No.
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
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
diff --git a/tests/test-lsdb.cpp b/tests/test-lsdb.cpp
new file mode 100644
index 0000000..efc6f4a
--- /dev/null
+++ b/tests/test-lsdb.cpp
@@ -0,0 +1,50 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "lsdb.hpp"
+#include "nlsr.hpp"
+#include "lsa.hpp"
+#include "name-prefix-list.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestLsdb)
+
+BOOST_AUTO_TEST_CASE(LsdbRemoveAndExists)
+{
+  Nlsr nlsr1;
+
+  NamePrefixList npl1;
+
+  string s1 = "name1";
+  string s2 = "name2";
+  string router1 = "router1/1";
+
+  npl1.insert(s1);
+  npl1.insert(s2);
+
+//For NameLsa lsType is 1.
+//12 is seqNo, randomly generated.
+//1800 is the default life time.
+  NameLsa nlsa1("router1", 1, 12, 1800, npl1);
+
+  Lsdb lsdb1;
+
+  lsdb1.installNameLsa(nlsr1, nlsa1);
+
+  BOOST_CHECK(lsdb1.doesLsaExist("router1/1", 1));
+
+  lsdb1.removeNameLsa(nlsr1, router1);
+
+  BOOST_CHECK_EQUAL(lsdb1.doesLsaExist("router1/1", 1), false);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-map-entry.cpp b/tests/test-map-entry.cpp
new file mode 100644
index 0000000..eafe3cc
--- /dev/null
+++ b/tests/test-map-entry.cpp
@@ -0,0 +1,29 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/map.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestMapEntry)
+
+BOOST_AUTO_TEST_CASE(MapEntryConstructorAndGetters)
+{
+  std::string rtr = "r0";
+
+  MapEntry me1(rtr, 1);
+
+  BOOST_CHECK_EQUAL(me1.getRouter(), "r0");
+
+  BOOST_CHECK_EQUAL(me1.getMappingNumber(), 1);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-map.cpp b/tests/test-map.cpp
new file mode 100644
index 0000000..ebbfb15
--- /dev/null
+++ b/tests/test-map.cpp
@@ -0,0 +1,31 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/map.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestMap)
+
+BOOST_AUTO_TEST_CASE(MapAddElementAndSize)
+{
+  Map map1;
+
+  std::string router1 = "r1";
+  std::string router2 = "r2";
+
+  map1.addElement(router1);
+  map1.addElement(router2);
+
+  BOOST_CHECK_EQUAL(map1.getMapSize(), 2);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-name-prefix-list.cpp b/tests/test-name-prefix-list.cpp
new file mode 100644
index 0000000..538c7be
--- /dev/null
+++ b/tests/test-name-prefix-list.cpp
@@ -0,0 +1,35 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "name-prefix-list.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestNpl)
+
+BOOST_AUTO_TEST_CASE(NplSizeAndRemove)
+{
+  NamePrefixList npl1;
+
+  std::string a = "testname";
+  std::string b = "name";
+
+  npl1.insert(a);
+  npl1.insert(b);
+
+  BOOST_CHECK_EQUAL(npl1.getSize(), 2);
+
+  npl1.remove(b);
+
+  BOOST_CHECK_EQUAL(npl1.getSize(), 1);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-name-prefix-table-entry.cpp b/tests/test-name-prefix-table-entry.cpp
new file mode 100644
index 0000000..44814c0
--- /dev/null
+++ b/tests/test-name-prefix-table-entry.cpp
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/name-prefix-table-entry.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestNpte)
+
+BOOST_AUTO_TEST_CASE(NpteConstructorAndNamePrefix)
+{
+  NamePrefixTableEntry npte1("/ndn/memphis.edu/cs");
+
+  BOOST_CHECK_EQUAL(npte1.getNamePrefix(), "/ndn/memphis.edu/cs");
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-nexthop-list.cpp b/tests/test-nexthop-list.cpp
new file mode 100644
index 0000000..10222e8
--- /dev/null
+++ b/tests/test-nexthop-list.cpp
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/nexthop-list.hpp"
+#include "route/nexthop.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestNhl)
+
+BOOST_AUTO_TEST_CASE(NhlAddNextHop)
+{
+  NextHop np1;
+
+  NexthopList nhl1;
+
+  nhl1.addNextHop(np1);
+  BOOST_CHECK_EQUAL(nhl1.getSize(), 1);
+
+  nhl1.removeNextHop(np1);
+  BOOST_CHECK_EQUAL(nhl1.getSize(), 0);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-nexthop.cpp b/tests/test-nexthop.cpp
new file mode 100644
index 0000000..b0bb90d
--- /dev/null
+++ b/tests/test-nexthop.cpp
@@ -0,0 +1,30 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/nexthop.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestNexthop)
+
+BOOST_AUTO_TEST_CASE(NexthopSetAndGet)
+{
+  NextHop np1;
+
+  np1.setConnectingFace(1);
+
+  np1.setRouteCost(10.5);
+
+  BOOST_CHECK_EQUAL(np1.getConnectingFace(), 1);
+  BOOST_CHECK_CLOSE(np1.getRouteCost(), 10.5, 0.0001);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-routing-table-entry.cpp b/tests/test-routing-table-entry.cpp
new file mode 100644
index 0000000..47edb1b
--- /dev/null
+++ b/tests/test-routing-table-entry.cpp
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/routing-table-entry.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestRoutingTableEntry)
+
+BOOST_AUTO_TEST_CASE(RoutingTableEntryDestination)
+{
+  RoutingTableEntry rte1("router1");
+
+  BOOST_CHECK_EQUAL(rte1.getDestination(), "router1");
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-routing-table.cpp b/tests/test-routing-table.cpp
new file mode 100644
index 0000000..e93b0c8
--- /dev/null
+++ b/tests/test-routing-table.cpp
@@ -0,0 +1,34 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "route/routing-table.hpp"
+#include "route/routing-table-entry.hpp"
+#include "route/nexthop.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestRoutingTable)
+
+BOOST_AUTO_TEST_CASE(RoutingTableAddNextHop)
+{
+  RoutingTable rt1;
+
+  NextHop nh1;
+
+  const std::string DEST_ROUTER = "destRouter";
+
+  rt1.addNextHop("destRouter", nh1);
+
+  BOOST_CHECK_EQUAL(rt1.findRoutingTableEntry(DEST_ROUTER)->getDestination(),
+                    "destRouter");
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-sequencing-manager.cpp b/tests/test-sequencing-manager.cpp
new file mode 100644
index 0000000..9ae9d55
--- /dev/null
+++ b/tests/test-sequencing-manager.cpp
@@ -0,0 +1,31 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "sequencing-manager.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestSequencingManager)
+
+BOOST_AUTO_TEST_CASE(SequencingManagerBasic)
+{
+  SequencingManager sm1(120, 121, 122);
+
+  SequencingManager sm2(sm1.getCombinedSeqNo());
+
+  BOOST_CHECK_EQUAL(sm2.getNameLsaSeq(), 120);
+
+  BOOST_CHECK_EQUAL(sm2.getAdjLsaSeq(), 121);
+
+  BOOST_CHECK_EQUAL(sm2.getCorLsaSeq(), 122);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr
diff --git a/tests/test-tokenizer.cpp b/tests/test-tokenizer.cpp
new file mode 100644
index 0000000..b3a8234
--- /dev/null
+++ b/tests/test-tokenizer.cpp
@@ -0,0 +1,34 @@
+/**
+ * Copyright (C) 2014 Regents of the University of Memphis.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "utility/tokenizer.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace nlsr {
+
+namespace test {
+
+BOOST_AUTO_TEST_SUITE(TestTokenizer)
+
+BOOST_AUTO_TEST_CASE(TokenizerBasic)
+{
+  Tokenizer token1("/ndn/memphis.edu/cs", "/");
+  Tokenizer token2("/ndn/memphis.edu/cs", "/");
+
+  Tokenizer token3("/test/hello");
+
+  BOOST_CHECK(token1.getFirstToken() == token2.getFirstToken());
+
+  BOOST_CHECK_EQUAL(token1.getRestOfLine(), token2.getRestOfLine());
+
+  BOOST_CHECK(token1.getFirstToken() != token3.getFirstToken());
+
+  BOOST_CHECK(token1.getRestOfLine() != token3.getRestOfLine());
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace test
+} //namespace nlsr