diff --git a/tests/management/test-nfd-control.cpp b/tests/management/test-nfd-control.cpp
index c41844a..79b4d39 100644
--- a/tests/management/test-nfd-control.cpp
+++ b/tests/management/test-nfd-control.cpp
@@ -26,7 +26,7 @@
 const uint8_t TestFibManagementOptions[] = {
   0x68, 0x1e, 0x07, 0x16, 0x08, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68,
   0x6f, 0x73, 0x74, 0x08, 0x03, 0x72, 0x65, 0x67, 0x08, 0x04, 0x74, 0x65,
-  0x73, 0x74, 0x69, 0x01, 0x00, 0x6a, 0x01, 0x00
+  0x73, 0x74, 0x69, 0x01, 0x00, 0x6a, 0x01, 0x01
 };
 
 const uint8_t TestFaceManagementOptions[] = {
@@ -65,7 +65,7 @@
 
   opt.setName (n);
   opt.setFaceId (0);
-  opt.setCost (0);
+  opt.setCost (1);
 
   const Block& blk = opt.wireEncode ();
 
@@ -81,7 +81,7 @@
 
   opt.setName (n);
   opt.setFaceId (0);
-  opt.setCost (0);
+  opt.setCost (1);
 
   EncodingBuffer blk;
 
@@ -110,7 +110,7 @@
   
   BOOST_CHECK_EQUAL (opt.getName (), n);
   BOOST_CHECK_EQUAL (opt.getFaceId (), 0);
-  BOOST_CHECK_EQUAL (opt.getCost (), 0);
+  BOOST_CHECK_EQUAL (opt.getCost (), 1);
 }
 
 BOOST_AUTO_TEST_CASE (FaceManagementOptionsFastEncoding)
diff --git a/tests/management/test-nrd.cpp b/tests/management/test-nrd.cpp
new file mode 100644
index 0000000..e45eb73
--- /dev/null
+++ b/tests/management/test-nrd.cpp
@@ -0,0 +1,56 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "management/nrd-prefix-reg-options.hpp"
+
+#include <boost/test/unit_test.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+using namespace std;
+
+namespace ndn {
+namespace nrd {
+
+BOOST_AUTO_TEST_SUITE(TestNrd)
+
+const uint8_t RealPrefixRegOptions[] = {
+  0x65, 0x1b, 0x07, 0x16, 0x08, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74,
+  0x08, 0x03, 0x72, 0x65, 0x67, 0x08, 0x04, 0x74, 0x65, 0x73, 0x74, 0x66, 0x01, 0x00,
+};
+
+BOOST_AUTO_TEST_CASE (PrefixRegOptionsEncode)
+{
+  Name n ("/localhost/reg/test");
+  PrefixRegOptions opt;
+
+  opt.setName (n);
+  opt.setFaceId (0);
+  opt.setCost (0);
+
+  const Block& blk = opt.wireEncode ();
+
+  BOOST_CHECK_EQUAL_COLLECTIONS (RealPrefixRegOptions,
+                                   RealPrefixRegOptions + sizeof (RealPrefixRegOptions),
+                                   blk.begin (), blk.end ());
+}
+
+BOOST_AUTO_TEST_CASE (PrefixRegOptionsDecoding)
+{
+  Block blk (RealPrefixRegOptions, sizeof (RealPrefixRegOptions));
+  Name n ("/localhost/reg/test");
+  PrefixRegOptions opt;
+
+  BOOST_REQUIRE_NO_THROW (opt.wireDecode (blk));
+  
+  BOOST_CHECK_EQUAL (opt.getName (), n);
+  BOOST_CHECK_EQUAL (opt.getFaceId (), 0);
+  BOOST_CHECK_EQUAL (opt.getCost (), 0);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} // namespace nrd
+} // namespace ndn
