diff --git a/test/message/append.cpp b/test/message/append.cpp
index 4734815..03ab781 100644
--- a/test/message/append.cpp
+++ b/test/message/append.cpp
@@ -293,6 +293,45 @@
         b.call_noreply(m);
     }
 
+    // Test tuple.
+    {
+        auto m = newMethodCall__test(b);
+        std::tuple<int, double, std::string> a{ 3, 4.1, "asdf" };
+        m.append(1, a, 2);
+        verifyTypeString = "i(ids)i";
+
+        struct verify
+        {
+            static void op(sd_bus_message* m)
+            {
+                int32_t a = 0;
+                double b = 0;
+                const char* c = nullptr;
+
+                sd_bus_message_read(m, "i", &a);
+                assert(a == 1);
+
+                auto rc = sd_bus_message_enter_container(m,
+                                                         SD_BUS_TYPE_STRUCT,
+                                                         "ids");
+                assert(0 <= rc);
+
+                sd_bus_message_read(m, "ids", &a, &b, &c);
+                assert(a == 3);
+                assert(b == 4.1);
+                assert(0 == strcmp(c, "asdf"));
+
+                sd_bus_message_exit_container(m);
+
+                sd_bus_message_read(m, "i", &a);
+                assert(a == 2);
+            }
+        };
+        verifyCallback = &verify::op;
+
+        b.call_noreply(m);
+    }
+
     // Shutdown server.
     {
         auto m = b.new_method_call(SERVICE, "/", INTERFACE, QUIT_METHOD);
diff --git a/test/message/read.cpp b/test/message/read.cpp
index f1dfc77..25ccdb5 100644
--- a/test/message/read.cpp
+++ b/test/message/read.cpp
@@ -247,7 +247,30 @@
         b.call_noreply(m);
     }
 
+    // Test tuple.
+    {
+        auto m = newMethodCall__test(b);
+        std::tuple<int, double, std::string> a{ 3, 4.1, "asdf" };
+        m.append(1, a, 2);
+        verifyTypeString = "i(ids)i";
 
+        struct verify
+        {
+            static void op(sdbusplus::message::message& m)
+            {
+                int32_t a = 0, b = 0;
+                std::tuple<int, double, std::string> c{};
+
+                m.read(a, c, b);
+                assert(a == 1);
+                assert(b == 2);
+                assert(c == std::make_tuple(3, 4.1, "asdf"s));
+            }
+        };
+        verifyCallback = &verify::op;
+
+        b.call_noreply(m);
+    }
 
     // Shutdown server.
     {
