diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index 0893147..0775756 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -201,5 +201,49 @@
     EXPECT_EQ(interface.defaultGateway6(), "");
 }
 
+TEST_F(TestEthernetInterface, DHCPEnabled)
+{
+    EXPECT_CALL(manager, reloadConfigs()).WillRepeatedly(testing::Return());
+
+    using DHCPConf = EthernetInterfaceIntf::DHCPConf;
+    auto test = [&](DHCPConf conf, bool dhcp4, bool dhcp6, bool ra) {
+        EXPECT_EQ(conf, interface.dhcpEnabled());
+        EXPECT_EQ(dhcp4, interface.dhcp4());
+        EXPECT_EQ(dhcp6, interface.dhcp6());
+        EXPECT_EQ(ra, interface.ipv6AcceptRA());
+    };
+    test(DHCPConf::both, /*dhcp4=*/true, /*dhcp6=*/true, /*ra=*/true);
+
+    auto set_test = [&](DHCPConf conf, bool dhcp4, bool dhcp6, bool ra) {
+        EXPECT_EQ(conf, interface.dhcpEnabled(conf));
+        test(conf, dhcp4, dhcp6, ra);
+    };
+    set_test(DHCPConf::none, /*dhcp4=*/false, /*dhcp6=*/false, /*ra=*/false);
+    set_test(DHCPConf::v4, /*dhcp4=*/true, /*dhcp6=*/false, /*ra=*/false);
+    set_test(DHCPConf::v6stateless, /*dhcp4=*/false, /*dhcp6=*/false,
+             /*ra=*/true);
+    set_test(DHCPConf::v6, /*dhcp4=*/false, /*dhcp6=*/true, /*ra=*/true);
+    set_test(DHCPConf::v4v6stateless, /*dhcp4=*/true, /*dhcp6=*/false,
+             /*ra=*/true);
+    set_test(DHCPConf::both, /*dhcp4=*/true, /*dhcp6=*/true, /*ra=*/true);
+
+    auto ind_test = [&](DHCPConf conf, bool dhcp4, bool dhcp6, bool ra) {
+        EXPECT_EQ(dhcp4, interface.dhcp4(dhcp4));
+        EXPECT_EQ(dhcp6, interface.dhcp6(dhcp6));
+        EXPECT_EQ(ra, interface.ipv6AcceptRA(ra));
+        test(conf, dhcp4, dhcp6, ra);
+    };
+    ind_test(DHCPConf::none, /*dhcp4=*/false, /*dhcp6=*/false, /*ra=*/false);
+    ind_test(DHCPConf::v4, /*dhcp4=*/true, /*dhcp6=*/false, /*ra=*/false);
+    ind_test(DHCPConf::v6stateless, /*dhcp4=*/false, /*dhcp6=*/false,
+             /*ra=*/true);
+    ind_test(DHCPConf::v6, /*dhcp4=*/false, /*dhcp6=*/true, /*ra=*/false);
+    set_test(DHCPConf::v6, /*dhcp4=*/false, /*dhcp6=*/true, /*ra=*/true);
+    ind_test(DHCPConf::v4v6stateless, /*dhcp4=*/true, /*dhcp6=*/false,
+             /*ra=*/true);
+    ind_test(DHCPConf::both, /*dhcp4=*/true, /*dhcp6=*/true, /*ra=*/false);
+    set_test(DHCPConf::both, /*dhcp4=*/true, /*dhcp6=*/true, /*ra=*/true);
+}
+
 } // namespace network
 } // namespace phosphor
