diff --git a/catalog/src/main.cpp b/catalog/src/main.cpp
index 78e3ccf..d5f89ee 100644
--- a/catalog/src/main.cpp
+++ b/catalog/src/main.cpp
@@ -21,13 +21,25 @@
 
 #include <ChronoSync/socket.hpp>
 #include <ndn-cxx/face.hpp>
+#include <json/value.h>
+#include <libpq-fe.h>
 
 using namespace std;
 using namespace ndn;
 
 int main()
 {
-  Face face;
-  shared_ptr<chronosync::Socket> socket;
+  Face face; // use ndn-cxx
+  shared_ptr<chronosync::Socket> socket; // use ChronoSync
+
+  Json::Value root; // use jsoncpp
+  PGconn *conn; // use libpq
+  // Make a connection to the database
+  conn = PQconnectdb("dbname=bedrock sslmode=disable");
+  if (PQstatus(conn) != CONNECTION_OK) {
+    cout << "Connection to database failed: "
+         << PQerrorMessage(conn) << endl;
+  }
+
   return 0;
 }
diff --git a/catalog/tests/unit-tests/simple.cpp b/catalog/tests/unit-tests/simple.cpp
index c6b4fbb..01ae66a 100644
--- a/catalog/tests/unit-tests/simple.cpp
+++ b/catalog/tests/unit-tests/simple.cpp
@@ -20,6 +20,11 @@
  */
 
 #include <boost/test/unit_test.hpp>
+#include <libpq-fe.h>
+#include <json/value.h>
+#include <json/writer.h>
+#include <json/reader.h>
+#include <iostream>
 
 namespace NdnAtmos {
 namespace test {
@@ -31,6 +36,30 @@
   BOOST_CHECK(0==0);
 }
 
+BOOST_AUTO_TEST_CASE(DBTest)
+{
+  PGconn *conn;
+  conn = PQconnectdb("dbname=test sslmode=disable");
+  BOOST_CHECK_EQUAL(PQstatus(conn) != CONNECTION_OK, true);
+}
+
+BOOST_AUTO_TEST_CASE(JsonTest)
+{
+  Json::Value original;
+  original["command"] = "test";
+
+  Json::FastWriter fastWriter;
+  std::string jsonMessage = fastWriter.write(original);
+
+  Json::Value parsedFromString;
+  Json::Reader reader;
+  bool result;
+  BOOST_CHECK_EQUAL(result = reader.parse(jsonMessage, parsedFromString), true);
+  if (result) {
+    BOOST_CHECK_EQUAL(original, parsedFromString);
+  }
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } //namespace test
diff --git a/catalog/tests/wscript b/catalog/tests/wscript
index 21e0b09..0f29974 100644
--- a/catalog/tests/wscript
+++ b/catalog/tests/wscript
@@ -26,11 +26,11 @@
 def build(bld):
     # unit test objects
     unit_tests_objects = bld(
-        target="unit-test-objects",
-        name="unit-test-objects",
+        target='unit-test-objects',
+        name='unit-test-objects',
         features="cxx",
         source=bld.path.ant_glob(['unit-tests/**/*.cpp']),
-        use='ndn-cxx BOOST',
+        use='NDN_CXX BOOST ndn_atmos_objects',
         includes='.',
         install_path=None)
 
@@ -39,6 +39,6 @@
         target='../unit-tests',
         name='unit-tests-main-unit',
         source="main.cpp",
-        use='ndn-cxx unit-test-objects BOOST',
+        use='unit-test-objects',
         install_path=None)
 
