diff --git a/test/oemrouter_unittest.cpp b/test/oemrouter_unittest.cpp
index f0c0a01..9880d72 100644
--- a/test/oemrouter_unittest.cpp
+++ b/test/oemrouter_unittest.cpp
@@ -19,7 +19,7 @@
                             ipmi_context_t context, ipmid_callback_t cb,
                             ipmi_cmd_privilege_t priv)
 {
-    EXPECT_EQ(NETFUN_OEM_GROUP, netfn);
+    EXPECT_EQ(ipmi::netFnOem, netfn);
     EXPECT_EQ(ipmi::cmdWildcard, cmd);
     EXPECT_EQ(reinterpret_cast<void*>(singletonUnderTest), context);
     EXPECT_EQ(PRIVILEGE_OEM, priv);
@@ -45,7 +45,7 @@
 {
     MakeRouter();
     singletonUnderTest->activate();
-    ASSERT_EQ(NETFUN_OEM_GROUP, lastNetFunction);
+    ASSERT_EQ(ipmi::netFnOem, lastNetFunction);
 }
 
 void RegisterWithRouter(Number oen, ipmi_cmd_t cmd, Handler cb)
@@ -115,7 +115,7 @@
     RegisterTwoWays(&cmd);
 
     dataLen = 3;
-    EXPECT_EQ(0, wildHandler(NETFUN_OEM_GROUP, 0x78, msgPlain, reply, &dataLen,
+    EXPECT_EQ(0, wildHandler(ipmi::netFnOem, 0x78, msgPlain, reply, &dataLen,
                              nullptr));
     EXPECT_EQ(5, dataLen);
     EXPECT_EQ(replyPlain[0], reply[0]);
@@ -136,13 +136,13 @@
     // Check two random command codes.
     dataLen = 5;
     cmd = 0x89;
-    EXPECT_EQ(0, wildHandler(NETFUN_OEM_GROUP, cmd, msgPlus2, reply, &dataLen,
+    EXPECT_EQ(0, wildHandler(ipmi::netFnOem, cmd, msgPlus2, reply, &dataLen,
                              nullptr));
     EXPECT_EQ(3, dataLen);
 
     dataLen = 5;
     cmd = 0x67;
-    EXPECT_EQ(0, wildHandler(NETFUN_OEM_GROUP, cmd, msgPlus2, reply, &dataLen,
+    EXPECT_EQ(0, wildHandler(ipmi::netFnOem, cmd, msgPlus2, reply, &dataLen,
                              nullptr));
     EXPECT_EQ(3, dataLen);
 }
@@ -158,17 +158,17 @@
     // Message too short to include whole OEN?
     dataLen = 2;
     EXPECT_EQ(IPMI_CC_REQ_DATA_LEN_INVALID,
-              wildHandler(NETFUN_OEM_GROUP, 0x78, msgPlain, reply, &dataLen,
+              wildHandler(ipmi::netFnOem, 0x78, msgPlain, reply, &dataLen,
                           nullptr));
 
     // Wrong specific command?
     dataLen = 3;
-    EXPECT_EQ(IPMI_CC_INVALID, wildHandler(NETFUN_OEM_GROUP, 0x89, msgPlain,
+    EXPECT_EQ(IPMI_CC_INVALID, wildHandler(ipmi::netFnOem, 0x89, msgPlain,
                                            reply, &dataLen, nullptr));
 
     // Wrong OEN?
     dataLen = 3;
-    EXPECT_EQ(IPMI_CC_INVALID, wildHandler(NETFUN_OEM_GROUP, 0x78, msgBadOen,
+    EXPECT_EQ(IPMI_CC_INVALID, wildHandler(ipmi::netFnOem, 0x78, msgBadOen,
                                            reply, &dataLen, nullptr));
 }
 
