diff --git a/test/handler_unittest.cpp b/test/handler_unittest.cpp
index 5af16ad..a95d1df 100644
--- a/test/handler_unittest.cpp
+++ b/test/handler_unittest.cpp
@@ -205,11 +205,11 @@
                           StrEq("GetManagedObjects")))
         .WillOnce(DoAll(SetArgPointee<1>(method), Return(0)));
 
-    EXPECT_CALL(mock, sd_bus_call(_,          // sd_bus *bus,
-                                  method,     // sd_bus_message *m
-                                  _,          // uint64_t timeout
-                                  NotNull(),  // sd_bus_error *ret_error
-                                  NotNull())) // sd_bus_message **reply
+    EXPECT_CALL(mock, sd_bus_call(_,           // sd_bus *bus,
+                                  method,      // sd_bus_message *m
+                                  _,           // uint64_t timeout
+                                  NotNull(),   // sd_bus_error *ret_error
+                                  NotNull()))  // sd_bus_message **reply
         .WillOnce(DoAll(SetArgPointee<3>(SD_BUS_ERROR_NULL),
                         SetArgPointee<4>(msg), // reply
                         Return(0)));
@@ -395,11 +395,11 @@
                         Pointee(Eq<uint64_t>(num_bytes))))))
         .WillOnce(Return(1));
 
-    EXPECT_CALL(mock, sd_bus_call(_,          // sd_bus *bus,
-                                  method,     // sd_bus_message *m
-                                  _,          // uint64_t timeout
-                                  NotNull(),  // sd_bus_error *ret_error
-                                  NotNull())) // sd_bus_message **reply
+    EXPECT_CALL(mock, sd_bus_call(_,           // sd_bus *bus,
+                                  method,      // sd_bus_message *m
+                                  _,           // uint64_t timeout
+                                  NotNull(),   // sd_bus_error *ret_error
+                                  NotNull()))  // sd_bus_message **reply
         .WillOnce(DoAll(SetArgPointee<3>(SD_BUS_ERROR_NULL),
                         SetArgPointee<4>(msg), // reply
                         Return(sd_bus_call_return_value)));
@@ -420,7 +420,7 @@
             EXPECT_CALL(mock, sd_bus_message_at_end(msg, 0))
                 .WillOnce(Return(0));
 
-            const uint8_t byte = (data >> (8 * i)) & 0xff;
+            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)));
