diff --git a/test/Makefile.am b/test/Makefile.am
index 0bf5215..d4cd3bd 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -8,5 +8,5 @@
 utest_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) $(AM_CPPFLAGS) $(PHOSPHOR_LOGGING_CFLAGS)
 utest_CXXFLAGS = $(PTHREAD_CFLAGS)
 utest_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS) $(SYSTEMD_LIBS) $(PHOSPHOR_LOGGING_LIBS) $(PHOSPHOR_DBUS_INTERFACES_LIBS)
-utest_SOURCES = utest.cpp
+utest_SOURCES = utest.cpp utest-led-json.cpp
 utest_LDADD = $(top_builddir)/manager.o
diff --git a/test/config/led-group-config-malformed.json b/test/config/led-group-config-malformed.json
new file mode 100644
index 0000000..4281cdf
--- /dev/null
+++ b/test/config/led-group-config-malformed.json
@@ -0,0 +1,40 @@
+{
+    "leds": [
+        {
+            "group": "bmc_booted"
+            "members": [
+                {
+                    "name": "heartbeat",
+                    "Action": "On"
+                }
+            ]
+        },
+        {
+            "group": "power_on",
+            "members": [
+                {
+                    "name": "power",
+                    "Action": "On",
+                    "Priority": "On"
+                }
+            ]
+        },
+        {
+            "group": "enclosure_identify",
+            "members": [
+                {
+                    "name": "front_id",
+                    "Action": "Blink",
+                    "DutyOn": 50,
+                    "Period": 1000
+                },
+                {
+                    "name": "rear_id",
+                    "Action": "Blink",
+                    "DutyOn": 50,
+                    "Period": 1000
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/config/led-group-config.json b/test/config/led-group-config.json
new file mode 100644
index 0000000..aff1fd4
--- /dev/null
+++ b/test/config/led-group-config.json
@@ -0,0 +1,40 @@
+{
+    "leds": [
+        {
+            "group": "bmc_booted",
+            "members": [
+                {
+                    "name": "heartbeat",
+                    "Action": "On"
+                }
+            ]
+        },
+        {
+            "group": "power_on",
+            "members": [
+                {
+                    "name": "power",
+                    "Action": "On",
+                    "Priority": "On"
+                }
+            ]
+        },
+        {
+            "group": "enclosure_identify",
+            "members": [
+                {
+                    "name": "front_id",
+                    "Action": "Blink",
+                    "DutyOn": 50,
+                    "Period": 1000
+                },
+                {
+                    "name": "rear_id",
+                    "Action": "Blink",
+                    "DutyOn": 50,
+                    "Period": 1000
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/utest-led-json.cpp b/test/utest-led-json.cpp
new file mode 100644
index 0000000..32d89a8
--- /dev/null
+++ b/test/utest-led-json.cpp
@@ -0,0 +1,68 @@
+#include "json-config.hpp"
+
+#include <gtest/gtest.h>
+
+TEST(loadJsonConfig, testGoodPath)
+{
+    static constexpr auto jsonPath = "config/led-group-config.json";
+    LedMap ledMap = loadJsonConfig(jsonPath);
+
+    std::string objPath = "/xyz/openbmc_project/led/groups";
+    std::string bmcBooted = objPath + "/bmc_booted";
+    std::string powerOn = objPath + "/power_on";
+    std::string enclosureIdentify = objPath + "/enclosure_identify";
+
+    ASSERT_NE(ledMap.find(bmcBooted), ledMap.end());
+    ASSERT_NE(ledMap.find(powerOn), ledMap.end());
+    ASSERT_NE(ledMap.find(enclosureIdentify), ledMap.end());
+
+    LedAction bmcBootedActions = ledMap.at(bmcBooted);
+    LedAction powerOnActions = ledMap.at(powerOn);
+    LedAction enclosureIdentifyActions = ledMap.at(enclosureIdentify);
+
+    for (const auto& group : bmcBootedActions)
+    {
+        ASSERT_EQ(group.name, "heartbeat");
+        ASSERT_EQ(group.action, phosphor::led::Layout::On);
+        ASSERT_EQ(group.dutyOn, 50);
+        ASSERT_EQ(group.period, 0);
+        ASSERT_EQ(group.priority, phosphor::led::Layout::Blink);
+    }
+
+    for (const auto& group : powerOnActions)
+    {
+        ASSERT_EQ(group.name, "power");
+        ASSERT_EQ(group.action, phosphor::led::Layout::On);
+        ASSERT_EQ(group.dutyOn, 50);
+        ASSERT_EQ(group.period, 0);
+        ASSERT_EQ(group.priority, phosphor::led::Layout::On);
+    }
+
+    for (const auto& group : enclosureIdentifyActions)
+    {
+        if (group.name == "front_id")
+        {
+            ASSERT_EQ(group.action, phosphor::led::Layout::Blink);
+            ASSERT_EQ(group.dutyOn, 50);
+            ASSERT_EQ(group.period, 1000);
+            ASSERT_EQ(group.priority, phosphor::led::Layout::Blink);
+        }
+        else if (group.name == "rear_id")
+        {
+            ASSERT_EQ(group.action, phosphor::led::Layout::Blink);
+            ASSERT_EQ(group.dutyOn, 50);
+            ASSERT_EQ(group.period, 1000);
+            ASSERT_EQ(group.priority, phosphor::led::Layout::Blink);
+        }
+        else
+        {
+            ASSERT_TRUE(false);
+        }
+    }
+}
+
+TEST(loadJsonConfig, testBadPath)
+{
+    static constexpr auto jsonPath = "config/led-group-config-malformed.json";
+    ASSERT_THROW(loadJsonConfig(jsonPath), std::exception);
+}
\ No newline at end of file
