pldmtool: Fix SetStateEffecterStates command

Fix and use the following command to set state effecter PDR:
pldmtool platform SetStateEffecterStates --id <effecterId> --count
<count> --data <setRequest effecterState ...>

Tested:
 $ pldmtool platform SetStateEffecterStates -i 1 -c 1 -d 0 2
 set_request = 0
 Encode request successfully
 Request Message:
 08 01 80 02 39 01 00 01 00 02 00 00 00 00 00 00 00 00 00 00 00 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 = 24
 Total length:24
 Loopback response message:
 08 01 80 02 39 01 00 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 On first recv(),response == request : RC = 0
 Total length: 6
 Shutdown Socket successful :  RC = 0
 Response Message:
 08 01 00 02 39 00
 SetStateEffecterStates: SUCCESS

 $ pldmtool platform SetStateEffecterStates -i 1 -c 1 -d 1 2
 set_request = 1
 Encode request successfully
 Request Message:
 08 01 80 02 39 01 00 01 01 02 00 00 00 00 00 00 00 00 00 00 00 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 = 24
 Total length:24
 Loopback response message:
 08 01 80 02 39 01 00 01 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 On first recv(),response == request : RC = 0
 Total length: 6
 Shutdown Socket successful :  RC = 0
 Response Message:
 08 01 00 02 39 00
 SetStateEffecterStates: SUCCESS

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I4a2e71b149040c3e0c0f585f8fae0e5e25ec7ceb
diff --git a/test/pldm_utils_test.cpp b/test/pldm_utils_test.cpp
index b512db9..c880c20 100644
--- a/test/pldm_utils_test.cpp
+++ b/test/pldm_utils_test.cpp
@@ -50,35 +50,30 @@
     EXPECT_EQ(ret, false);
 }
 
-TEST(decodeEffecterData, testGoodDecodeEffecterData)
+TEST(parseEffecterData, testGoodDecodeEffecterData)
 {
-    std::vector<uint8_t> effecterData = {2, 1, 1, 0, 1, 2};
-    uint16_t effecter_id = 2;
+    std::vector<uint8_t> effecterData = {1, 1, 0, 1};
+    uint8_t effecterCount = 2;
     set_effecter_state_field stateField0 = {1, 1};
-    set_effecter_state_field stateField1 = {0, 0};
-    set_effecter_state_field stateField2 = {1, 2};
+    set_effecter_state_field stateField1 = {0, 1};
 
-    uint16_t retEffecter_id = 0;
-    std::vector<set_effecter_state_field> stateField = {};
-    auto rc = decodeEffecterData(effecterData, retEffecter_id, stateField);
+    auto effecterField = parseEffecterData(effecterData, effecterCount);
+    EXPECT_NE(effecterField, std::nullopt);
+    EXPECT_EQ(effecterCount, effecterField->size());
 
-    EXPECT_EQ(rc, true);
-    EXPECT_EQ(effecter_id, retEffecter_id);
+    std::vector<set_effecter_state_field> stateField = effecterField.value();
     EXPECT_EQ(stateField[0].set_request, stateField0.set_request);
     EXPECT_EQ(stateField[0].effecter_state, stateField0.effecter_state);
     EXPECT_EQ(stateField[1].set_request, stateField1.set_request);
     EXPECT_EQ(stateField[1].effecter_state, stateField1.effecter_state);
-    EXPECT_EQ(stateField[2].set_request, stateField2.set_request);
-    EXPECT_EQ(stateField[2].effecter_state, stateField2.effecter_state);
 }
 
-TEST(decodeEffecterData, testBadDecodeEffecterData)
+TEST(parseEffecterData, testBadDecodeEffecterData)
 {
-    std::vector<uint8_t> effecterData = {2, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+    std::vector<uint8_t> effecterData = {0, 1, 0, 1, 0, 1};
+    uint8_t effecterCount = 2;
 
-    uint16_t retEffecter_id = 0;
-    std::vector<set_effecter_state_field> stateField = {};
-    auto rc = decodeEffecterData(effecterData, retEffecter_id, stateField);
+    auto effecterField = parseEffecterData(effecterData, effecterCount);
 
-    EXPECT_EQ(rc, false);
+    EXPECT_EQ(effecterField, std::nullopt);
 }