tlv: remove unused class LsdbStatus

refs: #4787

Change-Id: I9c7ce59238a3bac06d3db32423853f11f22e9160
diff --git a/src/publisher/dataset-interest-handler.cpp b/src/publisher/dataset-interest-handler.cpp
index d6f8ce7..f31cdbd 100644
--- a/src/publisher/dataset-interest-handler.cpp
+++ b/src/publisher/dataset-interest-handler.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2019,  The University of Memphis,
+ * Copyright (c) 2014-2020,  The University of Memphis,
  *                           Regents of the University of California,
  *                           Arizona Board of Regents.
  *
@@ -21,7 +21,6 @@
 
 #include "dataset-interest-handler.hpp"
 #include "nlsr.hpp"
-#include "tlv/lsdb-status.hpp"
 #include "logger.hpp"
 
 #include <ndn-cxx/mgmt/nfd/control-response.hpp>
diff --git a/src/tlv/lsdb-status.cpp b/src/tlv/lsdb-status.cpp
deleted file mode 100644
index f39cd27..0000000
--- a/src/tlv/lsdb-status.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2018,  The University of Memphis,
- *                           Regents of the University of California,
- *                           Arizona Board of Regents.
- *
- * This file is part of NLSR (Named-data Link State Routing).
- * See AUTHORS.md for complete list of NLSR authors and contributors.
- *
- * NLSR is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "lsdb-status.hpp"
-#include "tlv-nlsr.hpp"
-
-#include <ndn-cxx/util/concepts.hpp>
-#include <ndn-cxx/encoding/block-helpers.hpp>
-
-namespace nlsr {
-namespace tlv {
-
-BOOST_CONCEPT_ASSERT((ndn::WireEncodable<LsdbStatus>));
-BOOST_CONCEPT_ASSERT((ndn::WireDecodable<LsdbStatus>));
-static_assert(std::is_base_of<ndn::tlv::Error, LsdbStatus::Error>::value,
-              "LsdbStatus::Error must inherit from tlv::Error");
-
-LsdbStatus::LsdbStatus()
-  : m_hasAdjacencyLsas(false)
-  , m_hasCoordinateLsas(false)
-  , m_hasNameLsas(false)
-{
-}
-
-LsdbStatus::LsdbStatus(const ndn::Block& block)
-{
-  wireDecode(block);
-}
-
-LsdbStatus&
-LsdbStatus::addAdjacencyLsa(const AdjacencyLsa& adjacencyLsa)
-{
-  m_adjacencyLsas.push_back(adjacencyLsa);
-  m_wire.reset();
-  m_hasAdjacencyLsas = true;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::clearAdjacencyLsas()
-{
-  m_adjacencyLsas.clear();
-  m_hasAdjacencyLsas = false;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::addCoordinateLsa(const CoordinateLsa& coordinateLsa)
-{
-  m_coordinateLsas.push_back(coordinateLsa);
-  m_wire.reset();
-  m_hasCoordinateLsas = true;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::clearCoordinateLsas()
-{
-  m_coordinateLsas.clear();
-  m_hasCoordinateLsas = false;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::addNameLsa(const NameLsa& nameLsa)
-{
-  m_nameLsas.push_back(nameLsa);
-  m_wire.reset();
-  m_hasNameLsas = true;
-  return *this;
-}
-
-LsdbStatus&
-LsdbStatus::clearNameLsas()
-{
-  m_nameLsas.clear();
-  m_hasNameLsas = false;
-  return *this;
-}
-
-template<ndn::encoding::Tag TAG>
-size_t
-LsdbStatus::wireEncode(ndn::EncodingImpl<TAG>& block) const
-{
-  size_t totalLength = 0;
-
-  for (std::list<NameLsa>::const_reverse_iterator it = m_nameLsas.rbegin();
-       it != m_nameLsas.rend(); ++it) {
-    totalLength += it->wireEncode(block);
-  }
-
-  for (std::list<CoordinateLsa>::const_reverse_iterator it = m_coordinateLsas.rbegin();
-       it != m_coordinateLsas.rend(); ++it) {
-    totalLength += it->wireEncode(block);
-  }
-
-  for (std::list<AdjacencyLsa>::const_reverse_iterator it = m_adjacencyLsas.rbegin();
-       it != m_adjacencyLsas.rend(); ++it) {
-    totalLength += it->wireEncode(block);
-  }
-
-  totalLength += block.prependVarNumber(totalLength);
-  totalLength += block.prependVarNumber(ndn::tlv::nlsr::LsdbStatus);
-
-  return totalLength;
-}
-
-NDN_CXX_DEFINE_WIRE_ENCODE_INSTANTIATIONS(LsdbStatus);
-
-const ndn::Block&
-LsdbStatus::wireEncode() const
-{
-  if (m_wire.hasWire()) {
-    return m_wire;
-  }
-
-  ndn::EncodingEstimator estimator;
-  size_t estimatedSize = wireEncode(estimator);
-
-  ndn::EncodingBuffer buffer(estimatedSize, 0);
-  wireEncode(buffer);
-
-  m_wire = buffer.block();
-
-  return m_wire;
-}
-
-void
-LsdbStatus::wireDecode(const ndn::Block& wire)
-{
-  m_adjacencyLsas.clear();
-  m_coordinateLsas.clear();
-  m_nameLsas.clear();
-
-  m_hasAdjacencyLsas = false;
-  m_hasCoordinateLsas = false;
-  m_hasNameLsas = false;
-
-  m_wire = wire;
-
-  if (m_wire.type() != ndn::tlv::nlsr::LsdbStatus) {
-    std::stringstream error;
-    error << "Expected LsdbStatus Block, but Block is of a different type: #"
-          << m_wire.type();
-    BOOST_THROW_EXCEPTION(Error(error.str()));
-  }
-
-  m_wire.parse();
-
-  ndn::Block::element_const_iterator val = m_wire.elements_begin();
-
-  for (; val != m_wire.elements_end() && val->type() == ndn::tlv::nlsr::AdjacencyLsa; ++val) {
-    m_adjacencyLsas.push_back(AdjacencyLsa(*val));
-    m_hasAdjacencyLsas = true;
-  }
-
-  for (; val != m_wire.elements_end() && val->type() == ndn::tlv::nlsr::CoordinateLsa; ++val) {
-    m_coordinateLsas.push_back(CoordinateLsa(*val));
-    m_hasCoordinateLsas = true;
-  }
-
-  for (; val != m_wire.elements_end() && val->type() == ndn::tlv::nlsr::NameLsa; ++val) {
-    m_nameLsas.push_back(NameLsa(*val));
-    m_hasNameLsas = true;
-  }
-
-  if (val != m_wire.elements_end()) {
-    std::stringstream error;
-    error << "Expected the end of elements, but Block is of a different type: #"
-          << val->type();
-    BOOST_THROW_EXCEPTION(Error(error.str()));
-  }
-}
-
-std::ostream&
-operator<<(std::ostream& os, const LsdbStatus& lsdbStatus)
-{
-  os << "LsdbStatus(";
-
-  bool isFirst = true;
-
-  for (const auto& adjacencyLsa : lsdbStatus.getAdjacencyLsas()) {
-    if (isFirst) {
-      isFirst = false;
-    }
-    else {
-      os << ", ";
-    }
-
-    os << adjacencyLsa;
-  }
-
-  for (const auto& coordinateLsa : lsdbStatus.getCoordinateLsas()) {
-    if (isFirst) {
-      isFirst = false;
-    }
-    else {
-      os << ", ";
-    }
-
-    os << coordinateLsa;
-  }
-
-  for (const auto& nameLsa : lsdbStatus.getNameLsas()) {
-    if (isFirst) {
-      isFirst = false;
-    }
-    else {
-      os << ", ";
-    }
-
-    os << nameLsa;
-  }
-
-  os << ")";
-
-  return os;
-}
-
-} // namespace tlv
-} // namespace nlsr
diff --git a/src/tlv/lsdb-status.hpp b/src/tlv/lsdb-status.hpp
deleted file mode 100644
index 7d93859..0000000
--- a/src/tlv/lsdb-status.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2014-2018,  The University of Memphis,
- *                           Regents of the University of California,
- *                           Arizona Board of Regents.
- *
- * This file is part of NLSR (Named-data Link State Routing).
- * See AUTHORS.md for complete list of NLSR authors and contributors.
- *
- * NLSR is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NLSR_TLV_LSDB_STATUS_HPP
-#define NLSR_TLV_LSDB_STATUS_HPP
-
-#include "adjacency-lsa.hpp"
-#include "coordinate-lsa.hpp"
-#include "name-lsa.hpp"
-
-#include <ndn-cxx/util/time.hpp>
-#include <ndn-cxx/encoding/block.hpp>
-#include <ndn-cxx/encoding/encoding-buffer.hpp>
-#include <ndn-cxx/encoding/tlv.hpp>
-#include <ndn-cxx/name.hpp>
-
-#include <list>
-
-namespace nlsr {
-namespace tlv {
-
-/*! \brief Data abstraction for LsdbStatus
- *
- *  LsdbStatus := LSDB-STATUS-TYPE TLV-LENGTH
- *                  AdjacencyLsa*
- *                  CoordinateLsa*
- *                  NameLsa*
- *
- * \sa https://redmine.named-data.net/projects/nlsr/wiki/LSDB_DataSet
- */
-class LsdbStatus
-{
-public:
-  class Error : public ndn::tlv::Error
-  {
-  public:
-    explicit
-    Error(const std::string& what)
-      : ndn::tlv::Error(what)
-    {
-    }
-  };
-
-  typedef std::list<AdjacencyLsa> AdjacencyLsaList;
-  typedef std::list<CoordinateLsa> CoordinateLsaList;
-  typedef std::list<NameLsa> NameLsaList;
-
-  LsdbStatus();
-
-  explicit
-  LsdbStatus(const ndn::Block& block);
-
-  const std::list<AdjacencyLsa>&
-  getAdjacencyLsas() const
-  {
-    return m_adjacencyLsas;
-  }
-
-  LsdbStatus&
-  addAdjacencyLsa(const AdjacencyLsa& adjacencyLsa);
-
-  LsdbStatus&
-  clearAdjacencyLsas();
-
-  bool
-  hasAdjacencyLsas()
-  {
-    return m_hasAdjacencyLsas;
-  }
-
-  const std::list<CoordinateLsa>&
-  getCoordinateLsas() const
-  {
-    return m_coordinateLsas;
-  }
-
-  LsdbStatus&
-  addCoordinateLsa(const CoordinateLsa& coordinateLsa);
-
-  LsdbStatus&
-  clearCoordinateLsas();
-
-  bool
-  hasCoordinateLsas()
-  {
-    return m_hasCoordinateLsas;
-  }
-
-  const std::list<NameLsa>&
-  getNameLsas() const
-  {
-    return m_nameLsas;
-  }
-
-  LsdbStatus&
-  addNameLsa(const NameLsa& nameLsa);
-
-  LsdbStatus&
-  clearNameLsas();
-
-  bool
-  hasNameLsas()
-  {
-    return m_hasNameLsas;
-  }
-
-  /*! \brief Encodes the LSA objects and some info for each LSA using
-   * the method in TAG.
-   *
-   * This function will TLV-format the LSA objects and some LSA
-   * info using the implementation specified by TAG. Usually this is
-   * called with an estimator first to guess how long the buffer needs
-   * to be, then with an encoder to do the real work. This process is
-   * automated by the other wireEncode.
-   * \sa LsdbStatus::wireEncode()
-   */
-  template<ndn::encoding::Tag TAG>
-  size_t
-  wireEncode(ndn::EncodingImpl<TAG>& block) const;
-
-  /*! \brief Create a TLV encoding of this object.
-   *
-   * Create a block containing the TLV encoding of this object. That
-   * involves two steps: estimating the size that the information will
-   * take up, and then creating a buffer of that size and encoding the
-   * information into it. Both steps are accomplished by
-   * LsdbStatus::wireEncode(ndn::EncodingImpl<TAG>&)
-   */
-  const ndn::Block&
-  wireEncode() const;
-
-  /*! \brief Populate this object by decoding the one contained in the
-   * given block.
-   */
-  void
-  wireDecode(const ndn::Block& wire);
-
-private:
-  AdjacencyLsaList m_adjacencyLsas;
-  CoordinateLsaList m_coordinateLsas;
-  NameLsaList m_nameLsas;
-
-  bool m_hasAdjacencyLsas;
-  bool m_hasCoordinateLsas;
-  bool m_hasNameLsas;
-
-  mutable ndn::Block m_wire;
-};
-
-NDN_CXX_DECLARE_WIRE_ENCODE_INSTANTIATIONS(LsdbStatus);
-
-std::ostream&
-operator<<(std::ostream& os, const LsdbStatus& lsdbStatus);
-
-} // namespace tlv
-} // namespace nlsr
-
-#endif // NLSR_TLV_LSDB_STATUS_HPP
diff --git a/tests/tlv/test-lsdb-status.cpp b/tests/tlv/test-lsdb-status.cpp
deleted file mode 100644
index 0c87774..0000000
--- a/tests/tlv/test-lsdb-status.cpp
+++ /dev/null
@@ -1,372 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2019,  The University of Memphis,
- *                           Regents of the University of California,
- *                           Arizona Board of Regents.
- *
- * This file is part of NLSR (Named-data Link State Routing).
- * See AUTHORS.md for complete list of NLSR authors and contributors.
- *
- * NLSR is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NLSR, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- **/
-
-#include "tlv/lsdb-status.hpp"
-
-#include "tests/boost-test.hpp"
-
-#include <boost/mpl/vector.hpp>
-#include <boost/lexical_cast.hpp>
-
-namespace nlsr {
-namespace tlv {
-namespace test {
-
-BOOST_AUTO_TEST_SUITE(TlvTestLsdbStatus)
-
-const uint8_t LsdbStatusData1[] =
-{
-  // Header
-  0x8a, 0x7b,
-  // AdjacencyLsa
-  0x83, 0x32,
-    // LsaInfo
-    0x80, 0x11, 0x81, 0x08, 0x07, 0x06, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x82, 0x01,
-    0x80, 0x8b, 0x02, 0x27, 0x10,
-    // Adjacency
-    0x84, 0x1d, 0x07, 0x0c, 0x08, 0x0a, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63,
-    0x79, 0x31, 0x8d, 0x0a, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x31,
-    0x8c, 0x01, 0x80,
-  // CoordinateLsa
-  0x85, 0x27,
-    // LsaInfo
-    0x80, 0x11, 0x81, 0x08, 0x07, 0x06, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x82, 0x01,
-    0x80, 0x8b, 0x02, 0x27, 0x10,
-    // HyperbolicRadius
-    0x87, 0x08, 0x3f, 0xfa, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
-    // HyperbolicAngle
-    0x88, 0x08, 0x3f, 0xfc, 0x7a, 0xe1, 0x47, 0xae, 0x14, 0x7b,
-  // NameLsa
-  0x89, 0x1c,
-    // LsaInfo
-    0x80, 0x11, 0x81, 0x08, 0x07, 0x06, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x82, 0x01,
-    0x80, 0x8b, 0x02, 0x27, 0x10,
-    // Name
-    0x07, 0x07, 0x08, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x31
-};
-
-const uint8_t LsdbStatusData2[] =
-{
-  // Header
-  0x8a, 0x00
-};
-
-const uint8_t LsdbStatusData3[] =
-{
-  // Header
-  0x8a, 0x7b,
-  // CoordianteLsa
-  0x85, 0x27,
-    // LsaInfo
-    0x80, 0x11, 0x81, 0x08, 0x07, 0x06, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x82, 0x01,
-    0x80, 0x8B, 0x02, 0x27, 0x10,
-    // HyperbolicRadius
-    0x87, 0x08, 0x3F, 0xFA, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
-    // HyperbolicAngle
-    0x88, 0x08, 0x3F, 0xFC, 0x7A, 0xE1, 0x47, 0xAE, 0x14, 0x7B,
-  // NameLsa
-  0x89, 0x1c,
-    // LsaInfo
-    0x80, 0x11, 0x81, 0x08, 0x07, 0x06, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x82, 0x01,
-    0x80, 0x8b, 0x02, 0x27, 0x10,
-    // Name
-    0x07, 0x07, 0x08, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x31,
-  // AdjacencyLsa
-  0x83, 0x32,
-    // LsaInfo
-    0x80, 0x11, 0x81, 0x08, 0x07, 0x06, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x82, 0x01,
-    0x80, 0x8B, 0x02, 0x27, 0x10,
-    // Adjacency
-    0x84, 0x1d, 0x07, 0x0c, 0x08, 0x0a, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63,
-    0x79, 0x31, 0x8d, 0x0a, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x31,
-    0x8c, 0x01, 0x80
-};
-
-BOOST_AUTO_TEST_CASE(LsdbStatusEncode1)
-{
-  LsdbStatus lsdbStatus;
-
-  LsaInfo lsaInfo;
-  lsaInfo.setOriginRouter("test");
-  lsaInfo.setSequenceNumber(128);
-  lsaInfo.setExpirationPeriod(ndn::time::milliseconds(10000));
-
-  // AdjacencyLsa
-  AdjacencyLsa adjacencyLsa;
-  adjacencyLsa.setLsaInfo(lsaInfo);
-
-  Adjacency adjacency1;
-  adjacency1.setName("adjacency1");
-  adjacency1.setUri("adjacency1");
-  adjacency1.setCost(128);
-  adjacencyLsa.addAdjacency(adjacency1);
-
-  lsdbStatus.addAdjacencyLsa(adjacencyLsa);
-
-  // CoordinateLsa
-  CoordinateLsa coordinateLsa;
-  coordinateLsa.setLsaInfo(lsaInfo);
-
-  coordinateLsa.setHyperbolicRadius(1.65);
-  std::vector<double> angles;
-  angles.push_back(1.78);
-  coordinateLsa.setHyperbolicAngle(angles);
-
-  lsdbStatus.addCoordinateLsa(coordinateLsa);
-
-  // NameLsa
-  NameLsa nameLsa;
-  nameLsa.setLsaInfo(lsaInfo);
-  nameLsa.addName("name1");
-
-  lsdbStatus.addNameLsa(nameLsa);
-
-  const ndn::Block& wire = lsdbStatus.wireEncode();
-
-  BOOST_REQUIRE_EQUAL_COLLECTIONS(LsdbStatusData1,
-                                  LsdbStatusData1 + sizeof(LsdbStatusData1),
-                                  wire.begin(), wire.end());
-}
-
-BOOST_AUTO_TEST_CASE(LsdbStatusEncode2)
-{
-  LsdbStatus lsdbStatus;
-
-  const ndn::Block& wire = lsdbStatus.wireEncode();
-  BOOST_REQUIRE_EQUAL_COLLECTIONS(LsdbStatusData2,
-                                  LsdbStatusData2 + sizeof(LsdbStatusData2),
-                                  wire.begin(), wire.end());
-}
-
-BOOST_AUTO_TEST_CASE(LsdbStatusDecode1)
-{
-  LsdbStatus lsdbStatus;
-
-  lsdbStatus.wireDecode(ndn::Block(LsdbStatusData1, sizeof(LsdbStatusData1)));
-
-  std::list<AdjacencyLsa> adjacencyLsas = lsdbStatus.getAdjacencyLsas();
-  std::list<AdjacencyLsa>::const_iterator it1 = adjacencyLsas.begin();
-
-  LsaInfo lsaInfo = it1->getLsaInfo();
-  BOOST_CHECK_EQUAL(lsaInfo.getOriginRouter(), "test");
-  BOOST_CHECK_EQUAL(lsaInfo.getSequenceNumber(), 128);
-  BOOST_CHECK_EQUAL(lsaInfo.getExpirationPeriod(), ndn::time::milliseconds(10000));
-
-  std::list<Adjacency> adjacencies = it1->getAdjacencies();
-  std::list<Adjacency>::const_iterator it2 = adjacencies.begin();
-  BOOST_CHECK_EQUAL(it2->getName(), "adjacency1");
-  BOOST_CHECK_EQUAL(it2->getUri(), "adjacency1");
-  BOOST_CHECK_EQUAL(it2->getCost(), 128);
-
-  BOOST_CHECK_EQUAL(lsdbStatus.hasAdjacencyLsas(), true);
-
-  std::list<CoordinateLsa> coordinateLsas = lsdbStatus.getCoordinateLsas();
-  std::list<CoordinateLsa>::const_iterator it3 = coordinateLsas.begin();
-
-  lsaInfo = it3->getLsaInfo();
-  BOOST_CHECK_EQUAL(lsaInfo.getOriginRouter(), "test");
-  BOOST_CHECK_EQUAL(lsaInfo.getSequenceNumber(), 128);
-  BOOST_CHECK_EQUAL(lsaInfo.getExpirationPeriod(), ndn::time::milliseconds(10000));
-
-  BOOST_REQUIRE_EQUAL(it3->getHyperbolicRadius(), 1.65);
-  std::vector<double> angles;
-  angles.push_back(1.78);
-  BOOST_REQUIRE(it3->getHyperbolicAngle() == angles);
-
-  BOOST_CHECK_EQUAL(lsdbStatus.hasCoordinateLsas(), true);
-
-  std::list<NameLsa> nameLsas = lsdbStatus.getNameLsas();
-  std::list<NameLsa>::const_iterator it4 = nameLsas.begin();
-
-  lsaInfo = it4->getLsaInfo();
-  BOOST_CHECK_EQUAL(lsaInfo.getOriginRouter(), "test");
-  BOOST_CHECK_EQUAL(lsaInfo.getSequenceNumber(), 128);
-  BOOST_CHECK_EQUAL(lsaInfo.getExpirationPeriod(), ndn::time::milliseconds(10000));
-
-  std::list<ndn::Name> names = it4->getNames();
-  std::list<ndn::Name>::const_iterator it5 = names.begin();
-  BOOST_CHECK_EQUAL(*it5, "name1");
-
-  BOOST_CHECK_EQUAL(lsdbStatus.hasNameLsas(), true);
-}
-
-BOOST_AUTO_TEST_CASE(LsdbStatusDecode2)
-{
-  LsdbStatus lsdbStatus;
-
-  lsdbStatus.wireDecode(ndn::Block(LsdbStatusData2, sizeof(LsdbStatusData2)));
-
-  BOOST_CHECK_EQUAL(lsdbStatus.hasAdjacencyLsas(), false);
-  BOOST_CHECK_EQUAL(lsdbStatus.hasCoordinateLsas(), false);
-  BOOST_CHECK_EQUAL(lsdbStatus.hasNameLsas(), false);
-}
-
-BOOST_AUTO_TEST_CASE(LsdbStatusDecode3)
-{
-  LsdbStatus lsdbStatus;
-
-  BOOST_CHECK_THROW(lsdbStatus.wireDecode(ndn::Block(LsdbStatusData3, sizeof(LsdbStatusData3))),
-                    LsdbStatus::Error);
-}
-
-BOOST_AUTO_TEST_CASE(LsdbStatusClear)
-{
-  LsdbStatus lsdbStatus;
-
-  LsaInfo lsaInfo;
-  lsaInfo.setOriginRouter("test");
-  lsaInfo.setSequenceNumber(128);
-  lsaInfo.setExpirationPeriod(ndn::time::milliseconds(10000));
-
-  // AdjacencyLsa
-  AdjacencyLsa adjacencyLsa;
-  adjacencyLsa.setLsaInfo(lsaInfo);
-
-  Adjacency adjacency1;
-  adjacency1.setName("adjacency1");
-  adjacency1.setUri("adjacency1");
-  adjacency1.setCost(128);
-  adjacencyLsa.addAdjacency(adjacency1);
-
-  lsdbStatus.addAdjacencyLsa(adjacencyLsa);
-  BOOST_CHECK_EQUAL(lsdbStatus.hasAdjacencyLsas(), true);
-  lsdbStatus.clearAdjacencyLsas();
-  BOOST_CHECK_EQUAL(lsdbStatus.hasAdjacencyLsas(), false);
-
-  // CoordinateLsa
-  CoordinateLsa coordinateLsa;
-  coordinateLsa.setLsaInfo(lsaInfo);
-
-  coordinateLsa.setHyperbolicRadius(1.65);
-  std::vector<double> angles;
-  angles.push_back(1.78);
-  coordinateLsa.setHyperbolicAngle(angles);
-
-  lsdbStatus.addCoordinateLsa(coordinateLsa);
-  BOOST_CHECK_EQUAL(lsdbStatus.hasCoordinateLsas(), true);
-  lsdbStatus.clearCoordinateLsas();
-  BOOST_CHECK_EQUAL(lsdbStatus.hasCoordinateLsas(), false);
-
-  // NameLsa
-  NameLsa nameLsa;
-  nameLsa.setLsaInfo(lsaInfo);
-  nameLsa.addName("name1");
-
-  lsdbStatus.addNameLsa(nameLsa);
-  BOOST_CHECK_EQUAL(lsdbStatus.hasNameLsas(), true);
-  lsdbStatus.clearNameLsas();
-  BOOST_CHECK_EQUAL(lsdbStatus.hasNameLsas(), false);
-}
-
-class Theta
-{
-public:
-  std::vector<double> angles = {1.78};
-};
-
-class ThetaAndPhi
-{
-public:
-  std::vector<double> angles = {1.78, 3.21};
-};
-
-typedef boost::mpl::vector<Theta, ThetaAndPhi> HyperbolicAngleVectorFixture;
-
-BOOST_AUTO_TEST_CASE_TEMPLATE(LsdbStatusOutputStream, HRAngleVector, HyperbolicAngleVectorFixture)
-{
-  HRAngleVector angleVector;
-  LsdbStatus lsdbStatus;
-
-  LsaInfo lsaInfo;
-  lsaInfo.setOriginRouter("test");
-  lsaInfo.setSequenceNumber(128);
-  lsaInfo.setExpirationPeriod(ndn::time::milliseconds(10000));
-
-  // AdjacencyLsa
-  AdjacencyLsa adjacencyLsa;
-  adjacencyLsa.setLsaInfo(lsaInfo);
-
-  Adjacency adjacency1;
-  adjacency1.setName("adjacency1");
-  adjacency1.setUri("adjacency1");
-  adjacency1.setCost(128);
-  adjacencyLsa.addAdjacency(adjacency1);
-
-  lsdbStatus.addAdjacencyLsa(adjacencyLsa);
-
-    // NameLsa
-  NameLsa nameLsa;
-  nameLsa.setLsaInfo(lsaInfo);
-  nameLsa.addName("name1");
-
-  lsdbStatus.addNameLsa(nameLsa);
-
-  // CoordinateLsa
-  CoordinateLsa coordinateLsa;
-  coordinateLsa.setLsaInfo(lsaInfo);
-
-  coordinateLsa.setHyperbolicRadius(1.65);
-  coordinateLsa.setHyperbolicAngle(angleVector.angles);
-
-  std::string outputAngles = "HyperbolicAngles: ";
-  for (uint i = 0; i < angleVector.angles.size(); i++) {
-    std::string angle = boost::lexical_cast<std::string>(angleVector.angles[i]);
-    if (i == angleVector.angles.size()-1) {
-      outputAngles += angle;
-    }
-    else {
-      outputAngles += angle + ", ";
-    }
-  }
-  outputAngles += "), ";
-
-  lsdbStatus.addCoordinateLsa(coordinateLsa);
-
-  std::ostringstream os;
-  os << lsdbStatus;
-
-  BOOST_CHECK_EQUAL(os.str(), "LsdbStatus("
-                                "AdjacencyLsa("
-                                  "LsaInfo("
-                                    "OriginRouter: /test, "
-                                    "SequenceNumber: 128, "
-                                    "ExpirationPeriod: 10000 milliseconds), "
-                                  "Adjacency(Name: /adjacency1, Uri: adjacency1, Cost: 128)), "
-                                "CoordinateLsa("
-                                  "LsaInfo("
-                                    "OriginRouter: /test, "
-                                    "SequenceNumber: 128, "
-                                    "ExpirationPeriod: 10000 milliseconds), "
-                                  "HyperbolicRadius: 1.65, "
-                                  + outputAngles +
-                                "NameLsa("
-                                  "LsaInfo("
-                                    "OriginRouter: /test, "
-                                    "SequenceNumber: 128, "
-                                    "ExpirationPeriod: 10000 milliseconds), "
-                                  "Name: /name1))");
-}
-
-BOOST_AUTO_TEST_SUITE_END()
-
-} // namespace test
-} // namespace tlv
-} // namespace nlsr