diff --git a/test/test-encode-decode-interest.cpp b/test/test-encode-decode-interest.cpp
index 448f413..d28a264 100644
--- a/test/test-encode-decode-interest.cpp
+++ b/test/test-encode-decode-interest.cpp
@@ -8,28 +8,29 @@
 #include <cstdlib>
 #include <sstream>
 #include <iostream>
-#include <ndn-cpp/Name.hpp>
+#include <ndn-cpp/Interest.hpp>
 
 using namespace std;
 using namespace ndn;
 
-unsigned char Name1[] = {
-#if 0
+unsigned char Interest1[] = {
 0x01, 0xd2,
-#endif
   0xf2, 0xfa, 0x9d, 0x6e, 0x64, 0x6e, 0x00, 0xfa, 0x9d, 0x61, 0x62, 0x63, 0x00, 0x00, 
-#if 0
   0x05, 0x9a, 0x8e, 0x32, 0x00, 
   0x05, 0xa2, 0x8e, 0x34, 0x00,
   0x03, 0xe2, 
     0x02, 0x85, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 
                 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 
   0x00,
-  0x02, 0xda, 0xfa, 0x9d, 0x61, 0x62, 0x63, 0x00, 0xea, 0x00, 0x00, 0x05, 0xaa, 0x8e, 0x31, 0x00, 0x02,
-  0xfa, 0x8e, 0x34, 0x00, 0x02, 0xd2, 0x8e, 0x32, 0x00, 0x03, 0x82, 0x9d, 0x01, 0xe0, 0x00, 0x00, 0x02, 0xca, 0xb5, 0x61,
-  0x62, 0x61, 0x62, 0x61, 0x62, 0x00, 
-0x00, 
+#if 0
+  0x02, 0xda, 0xfa, 0x9d, 0x61, 0x62, 0x63, 0x00, 0xea, 0x00, 0x00, 
 #endif
+  0x05, 0xaa, 0x8e, 0x31, 0x00, 
+  0x02, 0xfa, 0x8e, 0x34, 0x00, 
+  0x02, 0xd2, 0x8e, 0x32, 0x00, 
+  0x03, 0x82, 0x9d, 0x01, 0xe0, 0x00, 0x00, 
+  0x02, 0xca, 0xb5, 0x61, 0x62, 0x61, 0x62, 0x61, 0x62, 0x00, 
+0x00, 
 1
 };
 
@@ -39,15 +40,18 @@
 int main(int argc, char** argv)
 {
   try {
-    Name name;
-    name.decode(Name1, sizeof(Name1));
-    cout << "Name " << name.to_uri() << endl;
+    Interest interest;
+    interest.decode(Interest1, sizeof(Interest1));
+    cout << "Interest name " << interest.getName().to_uri() << endl;
+    cout << "InterestLifetime " << interest.getInterestLifetime() << endl;
     
+#if 0
     vector<unsigned char> encoding;
-    name.encode(encoding);
+    interest.encode(encoding);
     unsigned char *encodingBuffer = &encoding[0];
     unsigned int encodingLength = encoding.size();
-    cout << "Name encoding length " << encodingLength << " vs. sizeof(Name1) " << sizeof(Name1) << endl;
+    cout << "Interest encoding length " << encodingLength << " vs. sizeof(Interest1) " << sizeof(Interest1) << endl;
+#endif
   } catch (exception &e) {
     cout << "exception " << e.what() << endl;
   }
