refactor client module to requester

Change-Id: I2b9835af7f03942bfdb6a886c95cfb4b907e2068
diff --git a/tests/unit-tests/client-module.t.cpp b/tests/unit-tests/client-module.t.cpp
index eb4cd45..79baee2 100644
--- a/tests/unit-tests/client-module.t.cpp
+++ b/tests/unit-tests/client-module.t.cpp
@@ -19,7 +19,7 @@
  */
 
 #include <protocol-detail/error.hpp>
-#include "client-module.hpp"
+#include "requester.hpp"
 #include "challenge-module.hpp"
 #include "ca-module.hpp"
 #include "test-common.hpp"
@@ -28,43 +28,7 @@
 namespace ndncert {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestClientModule, IdentityManagementTimeFixture)
-
-BOOST_AUTO_TEST_CASE(ClientModuleInitialize)
-{
-  ClientModule client(m_keyChain);
-  client.getClientConf().load("tests/unit-tests/config-files/config-client-1");
-  BOOST_CHECK_EQUAL(client.getClientConf().m_caItems.size(), 2);
-}
-
-BOOST_AUTO_TEST_CASE(Probe)
-{
-  ClientModule client(m_keyChain);
-  client.getClientConf().load("tests/unit-tests/config-files/config-client-1");
-
-  auto identity = addIdentity(Name("/site"));
-  auto key = identity.getDefaultKey();
-  auto cert = key.getDefaultCertificate();
-
-  CaConfigItem item;
-  item.m_probeParameterKeys.push_back("email");
-  item.m_probeParameterKeys.push_back("uid");
-  item.m_probeParameterKeys.push_back("name");
-  item.m_caPrefix = Name("/site");
-  item.m_cert = std::make_shared<security::v2::Certificate>(cert);
-  client.getClientConf().m_caItems.push_back(item);
-
-  std::vector<std::tuple<std::string, std::string>> probeParams;
-  probeParams.push_back(std::make_tuple("email", "zhiyi@cs.ucla.edu"));
-  probeParams.push_back(std::make_tuple("uid", "987654321"));
-  probeParams.push_back(std::make_tuple("name", "Zhiyi Zhang"));
-  auto firstInterest = client.generateProbeInterest(item, std::move(probeParams));
-  BOOST_CHECK(firstInterest->getName().at(-1).isParametersSha256Digest());
-  // ignore the last name component (ParametersSha256Digest)
-  BOOST_CHECK_EQUAL(firstInterest->getName().getPrefix(-1), "/site/CA/PROBE");
-  BOOST_CHECK_EQUAL(readString(firstInterest->getApplicationParameters().get(tlv_parameter_value)),
-                    "zhiyi@cs.ucla.edu");
-}
+BOOST_FIXTURE_TEST_SUITE(TestRequester, IdentityManagementTimeFixture)
 
 BOOST_AUTO_TEST_CASE(ErrorHandling)
 {
@@ -72,47 +36,24 @@
   auto key = identity.getDefaultKey();
   auto cert = key.getDefaultCertificate();
 
-  ClientModule client(m_keyChain);
-  CaConfigItem item;
+  CaProfile item;
   item.m_caPrefix = Name("/site");
   item.m_cert = std::make_shared<security::v2::Certificate>(cert);
-  client.getClientConf().m_caItems.push_back(item);
-
-  client.generateProbeInterest(item,std::vector<std::tuple<std::string, std::string>>());
+  RequesterState state(m_keyChain, item, RequestType::NEW);
 
   Data errorPacket;
   errorPacket.setName(Name("/site/pretend/this/is/error/packet"));
   errorPacket.setFreshnessPeriod(time::seconds(100));
-  errorPacket.setContent(ErrorTLV::encodeDataContent(ErrorCode::NO_ERROR, "This is a test."));
+  errorPacket.setContent(ErrorTLV::encodeDataContent(ErrorCode::INVALID_PARAMETER, "This is a test."));
   m_keyChain.sign(errorPacket, signingByIdentity(identity));
 
-  BOOST_CHECK_THROW(client.onProbeResponse(errorPacket), std::exception);
-  BOOST_CHECK_THROW(client.onNewRenewRevokeResponse(errorPacket), std::exception);
-  BOOST_CHECK_THROW(client.onChallengeResponse(errorPacket), std::exception);
+  std::vector<Name> ids, 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_AUTO_TEST_CASE(GenProbeRequestJson)
-// {
-//   ClientModule client(m_keyChain);
-//   client.getClientConf().load("tests/unit-tests/config-files/config-client-1");
-
-//   auto identity = addIdentity(Name("/site"));
-//   auto key = identity.getDefaultKey();
-//   auto cert = key.getDefaultCertificate();
-
-//   CaConfigItem item;
-//   item.m_probe = "email:uid:name";
-//   item.m_caPrefix = Name("/site");
-//   item.m_cert = std::make_shared<security::v2::Certificate>(cert);
-//   client.getClientConf().m_caItems.push_back(item);
-
-//   auto interestPacket = client.genProbeRequestJson(item, "yufeng@ucla.edu:123456789:Yufeng Zhang");
-//   BOOST_CHECK_EQUAL(interestPacket.get("email", ""), "yufeng@ucla.edu");
-//   BOOST_CHECK_EQUAL(interestPacket.get("uid", ""), "123456789");
-//   BOOST_CHECK_EQUAL(interestPacket.get("name", ""), "Yufeng Zhang");
-// }
-
-BOOST_AUTO_TEST_SUITE_END() // TestClientModule
+BOOST_AUTO_TEST_SUITE_END() // TestRequester
 
 } // namespace tests
 } // namespace ndncert