diff --git a/test/Makefile.am b/test/Makefile.am
index 1ab21e7..cc0d6c2 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -76,6 +76,7 @@
 libpldmresponder_bios_test_LDADD = \
 	$(top_builddir)/pldmd-registration.o \
 	$(top_builddir)/libpldmresponder/libpldmresponder_la-bios.o \
+	$(top_builddir)/libpldmresponder/libpldmresponder_la-bios_parser.o \
 	$(top_builddir)/libpldmresponder/libpldmresponder_la-utils.o \
 	$(top_builddir)/libpldm/libpldm_la-base.o  \
 	$(top_builddir)/libpldm/libpldm_la-bios.o \
diff --git a/test/bios_jsons/enum_attrs.json b/test/bios_jsons/enum_attrs.json
new file mode 100644
index 0000000..0b48be7
--- /dev/null
+++ b/test/bios_jsons/enum_attrs.json
@@ -0,0 +1,48 @@
+{
+   "entries":[
+      {
+         "attribute_name" : "HMCManagedState",
+         "possible_values" : [ "On", "Off" ],
+         "default_values" : [ "On" ],
+         "object_path" : "/xyz/abc/def",
+         "dbus":
+            {
+               "interface" : "xyz.openbmc_project.HMCManaged.State",
+               "property_name" : "State",
+               "property_type" : "string",
+               "property_values" : ["xyz.openbmc_project.State.On", "xyz.openbmc_project.State.Off"]
+            }
+      },
+      {
+         "attribute_name" : "FWBootSide",
+         "possible_values" : [ "Perm", "Temp" ],
+         "default_values" : [ "Perm" ],
+         "dbus":
+            {
+               "object_path" : "/xyz/abc/def",
+               "interface" : "xyz.openbmc.FWBoot.Side",
+               "property_name" : "Side",
+               "property_type" : "bool",
+               "property_values" : [true, false]
+            }
+      },
+      {
+         "attribute_name" : "InbandCodeUpdate",
+         "possible_values" : [ "Allowed", "NotAllowed" ],
+         "default_values" : [ "Allowed" ],
+         "dbus":
+            {
+               "object_path" : "/xyz/abc/def",
+               "interface" : "xyz.openbmc.InBandCodeUpdate",
+               "property_name" : "Policy",
+               "property_type" : "uint8_t",
+               "property_values" : [0, 1]
+            }
+      },
+      {
+         "attribute_name" : "CodeUpdatePolicy",
+         "possible_values" : [ "Concurrent", "Disruptive" ],
+         "default_values" : [ "Concurrent" ]
+      }
+    ]
+}
diff --git a/test/libpldmresponder_bios_test.cpp b/test/libpldmresponder_bios_test.cpp
index bcd3e5c..6e404de 100644
--- a/test/libpldmresponder_bios_test.cpp
+++ b/test/libpldmresponder_bios_test.cpp
@@ -1,5 +1,5 @@
-
 #include "libpldmresponder/bios.hpp"
+#include "libpldmresponder/bios_parser.hpp"
 
 #include <string.h>
 
@@ -44,3 +44,53 @@
     ASSERT_EQ(0x4, month);
     ASSERT_EQ(0x2019, year);
 }
+
+TEST(GetBIOSStrings, allScenarios)
+{
+    using namespace bios_parser;
+    // All the BIOS Strings in the BIOS JSON config files.
+    Strings vec{"HMCManagedState",  "On",         "Off",
+                "FWBootSide",       "Perm",       "Temp",
+                "InbandCodeUpdate", "Allowed",    "NotAllowed",
+                "CodeUpdatePolicy", "Concurrent", "Disruptive"};
+
+    Strings nullVec{};
+
+    // Invalid directory
+    auto strings = bios_parser::getStrings("./bios_json");
+    ASSERT_EQ(strings == nullVec, true);
+
+    strings = bios_parser::getStrings("./bios_jsons");
+    ASSERT_EQ(strings == vec, true);
+}
+
+TEST(getAttrValue, allScenarios)
+{
+    using namespace bios_parser::bios_enum;
+
+    // Invalid directory
+    auto rc = setupValueLookup("./bios_json");
+    ASSERT_EQ(rc, -1);
+
+    // Initializes the lookup data structures
+    rc = setupValueLookup("./bios_jsons");
+    ASSERT_EQ(rc, 0);
+
+    // All the BIOS Strings in the BIOS JSON config files.
+    AttrValuesMap valueMap{
+        {"HMCManagedState", {false, {"On", "Off"}, {"On"}}},
+        {"FWBootSide", {false, {"Perm", "Temp"}, {"Perm"}}},
+        {"InbandCodeUpdate", {false, {"Allowed", "NotAllowed"}, {"Allowed"}}},
+        {"CodeUpdatePolicy",
+         {false, {"Concurrent", "Disruptive"}, {"Concurrent"}}}};
+
+    auto values = getValues();
+    ASSERT_EQ(valueMap == values, true);
+
+    CurrentValues cv{"Concurrent"};
+    auto value = getAttrValue("CodeUpdatePolicy");
+    ASSERT_EQ(value == cv, true);
+
+    // Invalid attribute name
+    ASSERT_THROW(getAttrValue("CodeUpdatePolic"), std::out_of_range);
+}
