diff --git a/test/Makefile.am b/test/Makefile.am
index 35a7395..7211573 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -4,6 +4,7 @@
 
 check_PROGRAMS = \
 	libpldm_base_test \
+	libpldm_platform_test \
 	libpldmresponder_base_test
 
 test_cppflags = \
@@ -27,6 +28,16 @@
 libpldm_base_test_LDADD = $(top_builddir)/libpldm/libpldm_la-base.o $(CODE_COVERAGE_LIBS)
 libpldm_base_test_SOURCES = libpldm_base_test.cpp
 
+libpldm_platform_test_CPPFLAGS = $(test_cppflags)
+libpldm_platform_test_CXXFLAGS = $(test_cxxflags)
+libpldm_platform_test_LDFLAGS = $(test_ldflags)
+libpldm_platform_test_LDADD = \
+	$(top_builddir)/libpldm/libpldm_la-platform.o \
+	$(top_builddir)/libpldm/libpldm_la-base.o \
+	$(CODE_COVERAGE_LIBS)
+libpldm_platform_test_SOURCES = libpldm_platform_test.cpp
+
+
 libpldmresponder_base_test_CPPFLAGS = $(test_cppflags)
 libpldmresponder_base_test_CXXFLAGS = $(test_cxxflags)
 libpldmresponder_base_test_LDFLAGS = $(test_ldflags)
diff --git a/test/libpldm_platform_test.cpp b/test/libpldm_platform_test.cpp
new file mode 100644
index 0000000..0de82e4
--- /dev/null
+++ b/test/libpldm_platform_test.cpp
@@ -0,0 +1,76 @@
+#include <string.h>
+
+#include <array>
+
+#include "libpldm/base.h"
+#include "libpldm/platform.h"
+
+#include <gtest/gtest.h>
+
+TEST(SetStateEffecterStates, testEncodeResponse)
+{
+    pldm_msg response{};
+    uint8_t completionCode = 0;
+
+    std::array<uint8_t, PLDM_SET_STATE_EFFECTER_STATES_RESP_BYTES>
+        responseMsg{};
+
+    response.body.payload = responseMsg.data();
+    response.body.payload_length = responseMsg.size();
+
+    auto rc = encode_set_state_effecter_states_resp(0, PLDM_SUCCESS, &response);
+
+    ASSERT_EQ(rc, PLDM_SUCCESS);
+    ASSERT_EQ(completionCode, response.body.payload[0]);
+}
+
+TEST(SetStateEffecterStates, testGoodDecodeRequest)
+{
+    std::array<uint8_t, PLDM_SET_STATE_EFFECTER_STATES_REQ_BYTES> requestMsg{};
+
+    pldm_msg_payload request{};
+    request.payload = requestMsg.data();
+    request.payload_length = requestMsg.size();
+
+    uint16_t effecterId = 0x32;
+    uint8_t compEffecterCnt = 0x2;
+
+    std::array<set_effecter_state_field, 8> stateField{};
+    stateField[0] = {PLDM_REQUEST_SET, 3};
+    stateField[1] = {PLDM_REQUEST_SET, 4};
+
+    uint16_t retEffecterId = 0;
+    uint8_t retCompEffecterCnt = 0;
+
+    std::array<set_effecter_state_field, 8> retStateField{};
+
+    memcpy(request.payload, &effecterId, sizeof(effecterId));
+    memcpy(request.payload + sizeof(effecterId), &compEffecterCnt,
+           sizeof(compEffecterCnt));
+    memcpy(request.payload + sizeof(effecterId) + sizeof(compEffecterCnt),
+           &stateField, sizeof(stateField));
+
+    auto rc = decode_set_state_effecter_states_req(
+        &request, &retEffecterId, &retCompEffecterCnt, retStateField.data());
+
+    ASSERT_EQ(rc, PLDM_SUCCESS);
+    ASSERT_EQ(effecterId, retEffecterId);
+    ASSERT_EQ(retCompEffecterCnt, compEffecterCnt);
+    ASSERT_EQ(retStateField[0].set_request, stateField[0].set_request);
+    ASSERT_EQ(retStateField[0].effecter_state, stateField[0].effecter_state);
+    ASSERT_EQ(retStateField[1].set_request, stateField[1].set_request);
+    ASSERT_EQ(retStateField[1].effecter_state, stateField[1].effecter_state);
+}
+
+TEST(SetStateEffecterStates, testBadDecodeRequest)
+{
+    std::array<uint8_t, PLDM_SET_STATE_EFFECTER_STATES_REQ_BYTES> requestMsg{};
+
+    pldm_msg_payload request{};
+    request.payload = requestMsg.data();
+    request.payload_length = requestMsg.size();
+
+    auto rc = decode_set_state_effecter_states_req(&request, NULL, NULL, NULL);
+
+    ASSERT_EQ(rc, PLDM_ERROR_INVALID_DATA);
+}
