test: Fix test with read_array/append_array

After the sdbusplus [1], change the expected dbus call changed and
required us to update the unit tests.

[1] https://github.com/openbmc/sdbusplus/commit/242677a2b3dafdb3b79464eb64e0ae8bc7c5a7d5

Change-Id: Ifd38d004a620b015b97f4902df2288fab476aeba
Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/test/handler_unittest.cpp b/test/handler_unittest.cpp
index 5d01b73..4af02bf 100644
--- a/test/handler_unittest.cpp
+++ b/test/handler_unittest.cpp
@@ -407,30 +407,28 @@
 
     if (sd_bus_call_return_value >= 0)
     {
-        EXPECT_CALL(mock,
-                    sd_bus_message_enter_container(msg, SD_BUS_TYPE_ARRAY,
-                                                   StrEq(SD_BUS_TYPE_BYTE_STR)))
-            .WillOnce(Return(1));
-
         if (num_bytes_returned == NUM_BYTES_RETURNED_EQ_NUM_BYTES)
         {
             num_bytes_returned = num_bytes;
         }
-        for (auto i = num_bytes_returned - 1; i >= 0; --i)
-        {
-            EXPECT_CALL(mock, sd_bus_message_at_end(msg, 0))
-                .WillOnce(Return(0));
 
-            const uint8_t byte = (i >= 8) ? 0 : (data >> (8 * i)) & 0xff;
-            EXPECT_CALL(mock, sd_bus_message_read_basic(msg, SD_BUS_TYPE_BYTE,
-                                                        NotNull()))
-                .WillOnce(DoAll(AssignReadVal<uint8_t>(byte), Return(1)));
+        uint64_t updatedData = 0;
+        for (size_t i = 0; i < num_bytes_returned; ++i)
+        {
+            updatedData <<= 8;
+            updatedData += (i >= 8) ? 0 : (data >> (i * 8)) & 0xff;
         }
 
-        EXPECT_CALL(mock, sd_bus_message_at_end(msg, 0)).WillOnce(Return(1));
+        auto read_array_callback =
+            [updatedData, num_bytes_returned](sd_bus_message*, char,
+                                              const void** p, size_t* sz) {
+                *p = &updatedData;
+                *sz = num_bytes_returned;
+            };
 
-        EXPECT_CALL(mock, sd_bus_message_exit_container(msg))
-            .WillOnce(Return(1));
+        EXPECT_CALL(mock, sd_bus_message_read_array(nullptr, SD_BUS_TYPE_BYTE,
+                                                    testing::_, testing::_))
+            .WillOnce(DoAll(testing::Invoke(read_array_callback), Return(0)));
     }
 }
 
@@ -497,8 +495,13 @@
                  IpmiException);
 }
 
+static int on_array_append(sd_bus_message*, char, const void*, size_t)
+{
+    return 0;
+}
+
 void ExpectWrite(StrictMock<sdbusplus::SdBusMock>& mock, uint64_t address,
-                 uint8_t num_bytes, uint64_t data, int sd_bus_call_return_value)
+                 uint8_t num_bytes, uint64_t, int sd_bus_call_return_value)
 {
     ::testing::InSequence s;
 
@@ -522,28 +525,10 @@
         .WillOnce(DoAll(TraceDbus("sd_bus_message_append_basic(address) -> 1"),
                         Return(1)));
 
-    EXPECT_CALL(mock,
-                sd_bus_message_open_container(method, SD_BUS_TYPE_ARRAY,
-                                              StrEq(SD_BUS_TYPE_BYTE_STR)))
-        .WillOnce(DoAll(TraceDbus("sd_bus_message_open_container(a, y) -> 0"),
-                        Return(0)));
-
-    for (auto i = 0; i < num_bytes; ++i)
-    {
-        const uint8_t byte = (data >> (8 * i)) & 0xff;
-
-        EXPECT_CALL(
-            mock, sd_bus_message_append_basic(
-                      method, SD_BUS_TYPE_BYTE,
-                      MatcherCast<const void*>(
-                          SafeMatcherCast<const uint8_t*>(Pointee(Eq(byte))))))
-            .WillOnce(
-                DoAll(TraceDbus2("sd_bus_message_append_basic"), Return(1)));
-    }
-
-    EXPECT_CALL(mock, sd_bus_message_close_container(method))
-        .WillOnce(DoAll(TraceDbus("sd_bus_message_close_container() -> 0"),
-                        Return(0)));
+    EXPECT_CALL(
+        mock, sd_bus_message_append_array(nullptr, SD_BUS_TYPE_BYTE, testing::_,
+                                          num_bytes * sizeof(std::byte)))
+        .WillOnce(testing::Invoke(on_array_append));
 
     EXPECT_CALL(mock, sd_bus_call(_,         // sd_bus *bus,
                                   method,    // sd_bus_message *m