incremental
diff --git a/boost-dbus/test/message.cpp b/boost-dbus/test/message.cpp
new file mode 100644
index 0000000..d591f61
--- /dev/null
+++ b/boost-dbus/test/message.cpp
@@ -0,0 +1,62 @@
+// Copyright (c) Benjamin Kietzman (github.com/bkietz)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <dbus/error.hpp>
+#include <dbus/connection.hpp>
+#include <dbus/endpoint.hpp>
+#include <dbus/filter.hpp>
+#include <dbus/match.hpp>
+#include <dbus/message.hpp>
+#include <gtest/gtest.h>
+
+TEST(MessageTest, CallMessage) {
+  const dbus::message m =
+      dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/",
+                                             "org.freedesktop.Avahi.Server"),
+                              "GetHostName");
+
+  ASSERT_EQ("org.freedesktop.Avahi", m.get_destination());
+  ASSERT_EQ("/", m.get_path());
+  ASSERT_EQ("org.freedesktop.Avahi.Server", m.get_interface());
+  ASSERT_EQ("GetHostName", m.get_member());
+
+  dbus::message m2 =
+      dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/",
+                                             "org.freedesktop.Avahi.Server"),
+                              "GetHostName");
+
+  m2 << 1;
+  int i;
+  m2 >> i;
+  ASSERT_EQ(i, 1);
+
+  // m.get_sender();
+}
+
+// I actually don't know what to do with these yet.
+/*
+TEST(MessageTest, ErrorMessage)
+{
+
+  dbus::message m = dbus::message::new_call(
+    dbus::endpoint(
+      "org.freedesktop.Avahi",
+      "/",
+      "org.freedesktop.Avahi.Server"),
+    "GetHostName");
+
+  m.set_reply_serial(42);
+  m.set_serial(43);
+
+  dbus::message em = dbus::message::new_error(
+    m,
+    "com.skizizo.NoHostname",
+    "No hostname for you!");
+
+  const error e(em);
+
+  e.throw_if_set();
+}
+*/