pldm: Refector PDR repo based on the new PDR APIs

The related APIs for PDR operations is implemented in
pldm/libpldm/pdr.h and pldm/libpldm/pdr.c, we need to use this instead
of pdr::Repo(defined in libpldmresponder/pdr.hpp).
pdr::Repo is now a C++ wrapper around the PDR APIs in libpldm.

Tested with unit tests, with JSON files:
 https://gist.github.com/lxwinspur/2c3fd68cdb35e06480c4a5f7890e3a06#file-effecter_pdr-json.

 $ pldmtool platform GetPDR -d 0
 Encode request successfully
 Request Message:
 08 01 80 02 51 00 00 00 00 00 00 00 00 01 80 00 00 00
 Success in creating the socket : RC = 3
 Success in connecting to socket : RC = 0
 Success in sending message type as pldm to mctp : RC = 0
 Write to socket successful : RC = 18
 Total length:18
 Loopback response message:
 08 01 80 02 51 00 00 00 00 00 00 00 00 01 80 00 00 00
 On first recv(),response == request : RC = 0
 Total length: 46
 Shutdown Socket successful :  RC = 0
 Response Message:
 08 01 00 02 51 00 02 00 00 00 00 00 00 00 01 1d 00 01 00 00 00 01 0b 00 00 13 00 00 00 01 00 21 00 00 00 00 00 00 00 00 00 01 c4 00 01 06
 Parsed Response Msg:
 nextRecordHandle: 2
 responseCount: 29
 recordHandle: 1
 PDRHeaderVersion: 1
 PDRType: 11
 recordChangeNumber: 0
 dataLength: 19
 PLDMTerminusHandle: 0
 effecterID: 1
 entityType: 33
 entityInstanceNumber: 0
 containerID: 0
 effecterSemanticID: 0
 effecterInit: 0
 effecterDescriptionPDR: false
 compositeEffecterCount: 1
 stateSetID: 196
 possibleStatesSize: 1
 possibleStates: 6

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I0c41f888b2e36a5a49968dff190ad8d53255b9ed
diff --git a/test/libpldmresponder_pdr_state_effecter_test.cpp b/test/libpldmresponder_pdr_state_effecter_test.cpp
index e758f63..c2b114c 100644
--- a/test/libpldmresponder_pdr_state_effecter_test.cpp
+++ b/test/libpldmresponder_pdr_state_effecter_test.cpp
@@ -1,5 +1,6 @@
 #include "libpldmresponder/effecters.hpp"
 #include "libpldmresponder/pdr.hpp"
+#include "libpldmresponder/pdr_utils.hpp"
 
 #include "libpldm/platform.h"
 
@@ -9,17 +10,19 @@
 
 TEST(GeneratePDR, testGoodJson)
 {
-    using namespace pdr;
     using namespace effecter::dbus_mapping;
-    Repo& pdrRepo = get("./pdr_jsons/state_effecter/good");
+    pdr_utils::Repo pdrRepo = pdr::getRepoByType(
+        "./pdr_jsons/state_effecter/good", PLDM_STATE_EFFECTER_PDR);
 
     // 2 entries
-    ASSERT_EQ(pdrRepo.numEntries(), 2);
+    ASSERT_EQ(pdrRepo.getRecordCount(), 2);
 
     // Check first PDR
-    pdr::Entry e = pdrRepo.at(1);
+    pdr_utils::PdrEntry e;
+    auto record1 = pdr::getRecordByHandle(pdrRepo, 1, e);
+    ASSERT_NE(record1, nullptr);
     pldm_state_effecter_pdr* pdr =
-        reinterpret_cast<pldm_state_effecter_pdr*>(e.data());
+        reinterpret_cast<pldm_state_effecter_pdr*>(e.data);
 
     ASSERT_EQ(pdr->hdr.record_handle, 1);
     ASSERT_EQ(pdr->hdr.version, 1);
@@ -48,8 +51,9 @@
     ASSERT_EQ(paths[0], "/foo/bar");
 
     // Check second PDR
-    e = pdrRepo.at(2);
-    pdr = reinterpret_cast<pldm_state_effecter_pdr*>(e.data());
+    auto record2 = pdr::getRecordByHandle(pdrRepo, 2, e);
+    ASSERT_NE(record2, nullptr);
+    pdr = reinterpret_cast<pldm_state_effecter_pdr*>(e.data);
 
     ASSERT_EQ(pdr->hdr.record_handle, 2);
     ASSERT_EQ(pdr->hdr.version, 1);
@@ -91,19 +95,14 @@
 
 TEST(GeneratePDR, testNoJson)
 {
-    using namespace pdr;
-    Repo& pdrRepo = get("./pdr_jsons/not_there");
-
-    ASSERT_EQ(pdrRepo.numEntries(), 2);
+    ASSERT_THROW(pdr_utils::readJson("./pdr_jsons/not_there"), std::exception);
 }
 
 TEST(GeneratePDR, testMalformedJson)
 {
-    using namespace pdr;
-    Repo& pdrRepo = get("./pdr_jsons/state_effecter/good");
-    ASSERT_EQ(pdrRepo.numEntries(), 2);
-    pdrRepo.makeEmpty();
-    ASSERT_THROW(pldm::responder::pdr::internal::readJson(
-                     "./pdr_jsons/state_effecter/malformed"),
+    pdr_utils::Repo pdrRepo = pdr::getRepoByType(
+        "./pdr_jsons/state_effecter/good", PLDM_STATE_EFFECTER_PDR);
+    ASSERT_EQ(pdrRepo.getRecordCount(), 2);
+    ASSERT_THROW(pdr_utils::readJson("./pdr_jsons/state_effecter/malformed"),
                  std::exception);
 }