combine requester state

Change-Id: If91d08318ec1a40a8c031fdd493fe1f8662ef35d
diff --git a/tests/unit-tests/bench.t.cpp b/tests/unit-tests/bench.t.cpp
index 4877237..6f7b61c 100644
--- a/tests/unit-tests/bench.t.cpp
+++ b/tests/unit-tests/bench.t.cpp
@@ -21,7 +21,7 @@
 #include "ca-module.hpp"
 #include "challenge/challenge-pin.hpp"
 #include "detail/info-encoder.hpp"
-#include "requester.hpp"
+#include "requester-request.hpp"
 #include "test-common.hpp"
 
 namespace ndn {
@@ -105,9 +105,9 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
-  auto newInterest = requester::Requester::genNewInterest(state, Name("/ndn/alice"),
-                                                          time::system_clock::now(),
+  requester::Request state(m_keyChain, item, RequestType::NEW);
+  auto newInterest = state.genNewInterest(Name("/ndn/alice"),
+                                                        time::system_clock::now(),
                                                           time::system_clock::now() + time::days(1));
 
   // std::cout << "New Interest Size: " << newInterest->wireEncode().size() << std::endl;
@@ -121,40 +121,40 @@
   face.onSendData.connect([&](const Data& response) {
     if (Name("/ndn/CA/NEW").isPrefixOf(response.getName())) {
       // std::cout << "NEW Data Size: " << response.wireEncode().size() << std::endl;
-      auto challengeList = requester::Requester::onNewRenewRevokeResponse(state, response);
-      auto paramList = requester::Requester::selectOrContinueChallenge(state, "pin");
-      challengeInterest = requester::Requester::genChallengeInterest(state, std::move(paramList));
+      auto challengeList = state.onNewRenewRevokeResponse(response);
+      auto paramList = state.selectOrContinueChallenge("pin");
+      challengeInterest = state.genChallengeInterest(std::move(paramList));
     }
     else if (Name("/ndn/CA/CHALLENGE").isPrefixOf(response.getName()) && count == 0) {
       count++;
       BOOST_CHECK(security::verifySignature(response, cert));
 
-      requester::Requester::onChallengeResponse(state, response);
+      state.onChallengeResponse(response);
       BOOST_CHECK(state.status == Status::CHALLENGE);
       BOOST_CHECK_EQUAL(state.challengeStatus, ChallengePin::NEED_CODE);
-      auto paramList = requester::Requester::selectOrContinueChallenge(state, "pin");
-      challengeInterest2 = requester::Requester::genChallengeInterest(state, std::move(paramList));
+      auto paramList = state.selectOrContinueChallenge("pin");
+      challengeInterest2 = state.genChallengeInterest(std::move(paramList));
     }
     else if (Name("/ndn/CA/CHALLENGE").isPrefixOf(response.getName()) && count == 1) {
       count++;
       BOOST_CHECK(security::verifySignature(response, cert));
 
-      requester::Requester::onChallengeResponse(state, response);
+      state.onChallengeResponse(response);
       BOOST_CHECK(state.status == Status::CHALLENGE);
       BOOST_CHECK_EQUAL(state.challengeStatus, ChallengePin::WRONG_CODE);
 
-      auto paramList = requester::Requester::selectOrContinueChallenge(state, "pin");
+      auto paramList = state.selectOrContinueChallenge("pin");
       auto request = ca.getCertificateRequest(*challengeInterest2);
       auto secret = request->challengeState->secrets.get(ChallengePin::PARAMETER_KEY_CODE, "");
       paramList.begin()->second = secret;
-      challengeInterest3 = requester::Requester::genChallengeInterest(state, std::move(paramList));
+      challengeInterest3 = state.genChallengeInterest(std::move(paramList));
       // std::cout << "CHALLENGE Interest Size: " << challengeInterest3->wireEncode().size() << std::endl;
     }
     else if (Name("/ndn/CA/CHALLENGE").isPrefixOf(response.getName()) && count == 2) {
       // std::cout << "CHALLENGE Data Size: " << response.wireEncode().size() << std::endl;
       count++;
       BOOST_CHECK(security::verifySignature(response, cert));
-      requester::Requester::onChallengeResponse(state, response);
+      state.onChallengeResponse(response);
       BOOST_CHECK(state.status == Status::SUCCESS);
     }
   });
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index ed4f8f3..76dc1b8 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -23,7 +23,7 @@
 #include "challenge/challenge-email.hpp"
 #include "challenge/challenge-pin.hpp"
 #include "detail/info-encoder.hpp"
-#include "requester.hpp"
+#include "requester-request.hpp"
 #include "test-common.hpp"
 
 namespace ndn {
@@ -233,10 +233,10 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
-  auto interest = requester::Requester::genNewInterest(state, Name("/ndn/zhiyi"),
-                                            time::system_clock::now(),
-                                            time::system_clock::now() + time::days(1));
+  requester::Request state(m_keyChain, item, RequestType::NEW);
+  auto interest = state.genNewInterest(Name("/ndn/zhiyi"),
+                                       time::system_clock::now(),
+                                       time::system_clock::now() + time::days(1));
 
   int count = 0;
   face.onSendData.connect([&](const Data& response) {
@@ -258,7 +258,7 @@
 
     BOOST_CHECK(challengeBlockCount != 0);
 
-    auto challengeList = requester::Requester::onNewRenewRevokeResponse(state, response);
+    auto challengeList = state.onNewRenewRevokeResponse(response);
     RequestId requestId;
     std::memcpy(requestId.data(), contentBlock.get(tlv::RequestId).value(), contentBlock.get(tlv::RequestId).value_size());
     auto ca_encryption_key = ca.getCaStorage()->getRequest(requestId).encryptionKey;
@@ -284,11 +284,11 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
+  requester::Request state(m_keyChain, item, RequestType::NEW);
   auto current_tp = time::system_clock::now();
-  auto interest1 = requester::Requester::genNewInterest(state, Name("/ndn/zhiyi"), current_tp, current_tp - time::hours(1));
-  auto interest2 = requester::Requester::genNewInterest(state, Name("/ndn/zhiyi"), current_tp, current_tp + time::days(361));
-  auto interest3 = requester::Requester::genNewInterest(state, Name("/ndn/zhiyi"), current_tp - time::hours(1), current_tp + time::hours(2));
+  auto interest1 = state.genNewInterest(Name("/ndn/zhiyi"), current_tp, current_tp - time::hours(1));
+  auto interest2 = state.genNewInterest(Name("/ndn/zhiyi"), current_tp, current_tp + time::days(361));
+  auto interest3 = state.genNewInterest(Name("/ndn/zhiyi"), current_tp - time::hours(1), current_tp + time::hours(2));
   face.onSendData.connect([&](const Data& response) {
     auto contentTlv = response.getContent();
     contentTlv.parse();
@@ -315,13 +315,13 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
+  requester::Request state(m_keyChain, item, RequestType::NEW);
 
-  auto interest1 = requester::Requester::genNewInterest(state, Name("/ndn/a"), time::system_clock::now(),
+  auto interest1 = state.genNewInterest(Name("/ndn/a"), time::system_clock::now(),
                                               time::system_clock::now() + time::days(1));
-  auto interest2 = requester::Requester::genNewInterest(state, Name("/ndn/a/b"), time::system_clock::now(),
+  auto interest2 = state.genNewInterest(Name("/ndn/a/b"), time::system_clock::now(),
                                               time::system_clock::now() + time::days(1));
-  auto interest3 = requester::Requester::genNewInterest(state, Name("/ndn/a/b/c/d"), time::system_clock::now(),
+  auto interest3 = state.genNewInterest(Name("/ndn/a/b/c/d"), time::system_clock::now(),
                                               time::system_clock::now() + time::days(1));
 
   face.onSendData.connect([&](const Data& response) {
@@ -356,11 +356,11 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
+  requester::Request state(m_keyChain, item, RequestType::NEW);
 
   auto current_tp = time::system_clock::now();
-  auto interest1 = requester::Requester::genNewInterest(state, Name("/ndn"), current_tp, current_tp + time::days(1));
-  auto interest2 = requester::Requester::genNewInterest(state, Name("/ndn/a/b/c/d"), current_tp, current_tp + time::days(1));
+  auto interest1 = state.genNewInterest(Name("/ndn"), current_tp, current_tp + time::days(1));
+  auto interest2 = state.genNewInterest(Name("/ndn/a/b/c/d"), current_tp, current_tp + time::days(1));
   face.onSendData.connect([&](const Data& response) {
     auto contentTlv = response.getContent();
     contentTlv.parse();
@@ -387,9 +387,9 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
+  requester::Request state(m_keyChain, item, RequestType::NEW);
 
-  auto newInterest = requester::Requester::genNewInterest(state, Name("/ndn/zhiyi"), time::system_clock::now(),
+  auto newInterest = state.genNewInterest(Name("/ndn/zhiyi"), time::system_clock::now(),
                                                 time::system_clock::now() + time::days(1));
 
   // generate CHALLENGE Interest
@@ -400,38 +400,38 @@
   int count = 0;
   face.onSendData.connect([&](const Data& response) {
     if (Name("/ndn/CA/NEW").isPrefixOf(response.getName())) {
-      auto challengeList = requester::Requester::onNewRenewRevokeResponse(state, response);
-      auto paramList = requester::Requester::selectOrContinueChallenge(state, "pin");
-      challengeInterest = requester::Requester::genChallengeInterest(state, std::move(paramList));
+      auto challengeList = state.onNewRenewRevokeResponse(response);
+      auto paramList = state.selectOrContinueChallenge("pin");
+      challengeInterest = state.genChallengeInterest(std::move(paramList));
     }
     else if (Name("/ndn/CA/CHALLENGE").isPrefixOf(response.getName()) && count == 0) {
       count++;
       BOOST_CHECK(security::verifySignature(response, cert));
 
-      requester::Requester::onChallengeResponse(state, response);
+      state.onChallengeResponse(response);
       BOOST_CHECK(state.status == Status::CHALLENGE);
       BOOST_CHECK_EQUAL(state.challengeStatus, ChallengePin::NEED_CODE);
-      auto paramList = requester::Requester::selectOrContinueChallenge(state, "pin");
-      challengeInterest2 = requester::Requester::genChallengeInterest(state, std::move(paramList));
+      auto paramList = state.selectOrContinueChallenge("pin");
+      challengeInterest2 = state.genChallengeInterest(std::move(paramList));
     }
     else if (Name("/ndn/CA/CHALLENGE").isPrefixOf(response.getName()) && count == 1) {
       count++;
       BOOST_CHECK(security::verifySignature(response, cert));
 
-      requester::Requester::onChallengeResponse(state, response);
+      state.onChallengeResponse(response);
       BOOST_CHECK(state.status == Status::CHALLENGE);
       BOOST_CHECK_EQUAL(state.challengeStatus, ChallengePin::WRONG_CODE);
 
-      auto paramList = requester::Requester::selectOrContinueChallenge(state, "pin");
+      auto paramList = state.selectOrContinueChallenge("pin");
       auto request = ca.getCertificateRequest(*challengeInterest2);
       auto secret = request->challengeState->secrets.get(ChallengePin::PARAMETER_KEY_CODE, "");
       paramList.begin()->second = secret;
-      challengeInterest3 = requester::Requester::genChallengeInterest(state, std::move(paramList));
+      challengeInterest3 = state.genChallengeInterest(std::move(paramList));
     }
     else if (Name("/ndn/CA/CHALLENGE").isPrefixOf(response.getName()) && count == 2) {
       count++;
       BOOST_CHECK(security::verifySignature(response, cert));
-      requester::Requester::onChallengeResponse(state, response);
+      state.onChallengeResponse(response);
       BOOST_CHECK(state.status == Status::SUCCESS);
     }
   });
@@ -481,9 +481,9 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::REVOKE);
+  requester::Request state(m_keyChain, item, RequestType::REVOKE);
 
-  auto interest = requester::Requester::genRevokeInterest(state, issuedCert);
+  auto interest = state.genRevokeInterest(issuedCert);
 
   int count = 0;
   face.onSendData.connect([&](const Data& response) {
@@ -505,7 +505,7 @@
 
     BOOST_CHECK(challengeBlockCount != 0);
 
-    auto challengeList = requester::Requester::onNewRenewRevokeResponse(state, response);
+    auto challengeList = state.onNewRenewRevokeResponse(response);
     RequestId requestId;
     std::memcpy(requestId.data(), contentBlock.get(tlv::RequestId).value(), contentBlock.get(tlv::RequestId).value_size());
     auto ca_encryption_key = ca.getCaStorage()->getRequest(requestId).encryptionKey;
@@ -544,9 +544,9 @@
   CaProfile item;
   item.caPrefix = Name("/ndn");
   item.cert = std::make_shared<security::Certificate>(cert);
-  requester::RequestState state(m_keyChain, item, RequestType::NEW);
+  requester::Request state(m_keyChain, item, RequestType::NEW);
 
-  auto interest = requester::Requester::genRevokeInterest(state, clientCert);
+  auto interest = state.genRevokeInterest(clientCert);
 
   bool receiveData = false;
   face.onSendData.connect([&](const Data& response) {
diff --git a/tests/unit-tests/protocol-encoders.t.cpp b/tests/unit-tests/protocol-encoders.t.cpp
index b522b06..5dd26b5 100644
--- a/tests/unit-tests/protocol-encoders.t.cpp
+++ b/tests/unit-tests/protocol-encoders.t.cpp
@@ -159,7 +159,7 @@
   state.challengeState = ca::ChallengeState("test", tp, 3, time::seconds(3600), JsonSection());
   auto contentBlock = challengetlv::encodeDataContent(state, Name("/ndn/ucla/a/b/c"));
 
-  requester::RequestState context(m_keyChain, caCache.getKnownProfiles().front(), RequestType::NEW);
+  requester::Request context(m_keyChain, caCache.getKnownProfiles().front(), RequestType::NEW);
   context.requestId = id;
   std::memcpy(context.aesKey.data(), key, sizeof(key));
   advanceClocks(time::seconds(10));
diff --git a/tests/unit-tests/requester.t.cpp b/tests/unit-tests/requester.t.cpp
index 50c38ad..1f07a3f 100644
--- a/tests/unit-tests/requester.t.cpp
+++ b/tests/unit-tests/requester.t.cpp
@@ -18,7 +18,7 @@
  * See AUTHORS.md for complete list of ndncert authors and contributors.
  */
 
-#include "requester.hpp"
+#include "requester-request.hpp"
 #include "detail/error-encoder.hpp"
 #include "detail/probe-encoder.hpp"
 #include "challenge/challenge-module.hpp"
@@ -51,7 +51,7 @@
   probeParams.emplace("email", "zhiyi@cs.ucla.edu");
   probeParams.emplace("uid", "987654321");
   probeParams.emplace("name", "Zhiyi Zhang");
-  auto firstInterest = Requester::genProbeInterest(ca_profile, std::move(probeParams));
+  auto firstInterest = Request::genProbeInterest(ca_profile, std::move(probeParams));
 
   BOOST_CHECK(firstInterest->getName().at(-1).isParametersSha256Digest());
   // ignore the last name component (ParametersSha256Digest)
@@ -86,7 +86,7 @@
 
   std::vector<std::pair<Name, int>> names;
   std::vector<Name> redirects;
-  Requester::onProbeResponse(reply, ca_profile, names, redirects);
+  Request::onProbeResponse(reply, ca_profile, names, redirects);
 
   // Test names and redirects are properly stored
   BOOST_CHECK_EQUAL(names.size(), 2);
@@ -109,7 +109,7 @@
   CaProfile item;
   item.caPrefix = Name("/site");
   item.cert = std::make_shared<security::Certificate>(cert);
-  RequestState state(m_keyChain, item, RequestType::NEW);
+  Request state(m_keyChain, item, RequestType::NEW);
 
   Data errorPacket;
   errorPacket.setName(Name("/site/pretend/this/is/error/packet"));
@@ -119,9 +119,9 @@
 
   std::vector<std::pair<Name, int>> ids;
   std::vector<Name> cas;
-  BOOST_CHECK_THROW(Requester::onProbeResponse(errorPacket, item, ids, cas), std::runtime_error);
-  BOOST_CHECK_THROW(Requester::onNewRenewRevokeResponse(state, errorPacket), std::runtime_error);
-  BOOST_CHECK_THROW(Requester::onChallengeResponse(state, errorPacket), std::runtime_error);
+  BOOST_CHECK_THROW(Request::onProbeResponse(errorPacket, item, ids, cas), std::runtime_error);
+  BOOST_CHECK_THROW(state.onNewRenewRevokeResponse(errorPacket), std::runtime_error);
+  BOOST_CHECK_THROW(state.onChallengeResponse(errorPacket), std::runtime_error);
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestRequester