bm_instance: Create a new handler

This OEM handler will get properties from tmpfs to serve over IPMI.

Tested:
~# cat /run/bm-instance/asset-tag
12345
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x17 0x00
 79 2b 00 17 05 31 32 33 34 35
...
...
(Verified this works for all 7 sub commands)

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I191b6f4994d91ada49a3332a8e93a3a305561904
diff --git a/test/handler_unittest.cpp b/test/handler_unittest.cpp
index 549f1d0..2fb470e 100644
--- a/test/handler_unittest.cpp
+++ b/test/handler_unittest.cpp
@@ -642,6 +642,18 @@
     }
 }
 
+TEST(HandlerTest, BmInstanceFailCase)
+{
+    StrictMock<sdbusplus::SdBusMock> mock;
+    MockDbusHandler h(mock);
+
+    // Invalid enum
+    EXPECT_THROW(h.getBMInstanceProperty(0x07), IpmiException);
+
+    // Valid enum but no path exists
+    EXPECT_THROW(h.getBMInstanceProperty(0x00), IpmiException);
+}
+
 // TODO: Add checks for other functions of handler.
 
 } // namespace ipmi