diff --git a/test/Makefile.am b/test/Makefile.am
index af70c63..0e66587 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -22,6 +22,7 @@
 
 check_PROGRAMS += message_native_types
 message_native_types_SOURCES = message/native_types.cpp
+message_native_types_LDFLAGS = $(gtest_ldflags)
 
 check_PROGRAMS += message_types
 message_types_SOURCES = message/types.cpp
diff --git a/test/message/native_types.cpp b/test/message/native_types.cpp
index cbe33eb..3b46457 100644
--- a/test/message/native_types.cpp
+++ b/test/message/native_types.cpp
@@ -1,35 +1,51 @@
-#include <cassert>
+#include <gtest/gtest.h>
 #include <sdbusplus/message.hpp>
 #include <vector>
 #include <map>
 #include <unordered_map>
 
-void check_string_compares(const sdbusplus::message::signature& sig,
-                           const std::string& str)
-{
-    assert(sig == str);
-    assert(str == sig);
-    return;
-}
+/* Suite tests that object_path and signature can be cleanly converted to
+ * and from strings and used as container parameters.
+ */
 
-int main()
+TEST(MessageNativeTypeConversions, ObjectPath)
 {
     std::string s1 = sdbusplus::message::object_path("/asdf/");
     sdbusplus::message::object_path p = std::move(s1);
 
+    ASSERT_EQ("/asdf/", p);
+    ASSERT_EQ(p, "/asdf/");
+}
+
+TEST(MessageNativeTypeConversions, Signature)
+{
     std::string s2 = sdbusplus::message::signature("iii");
     sdbusplus::message::signature sig = s2;
 
-    check_string_compares(sig, s2);
+    ASSERT_EQ(sig, s2);
+    ASSERT_EQ(s2, sig);
+}
 
+TEST(MessageNativeTypeConversions, SignatureInVector)
+{
     std::vector<sdbusplus::message::signature> v =
         { sdbusplus::message::signature("iii") };
 
+    ASSERT_EQ(v.front(), "iii");
+}
+
+TEST(MessageNativeTypeConversions, SignatureInMap)
+{
     std::map<sdbusplus::message::signature, int> m =
         { { sdbusplus::message::signature("iii"), 1 } };
 
-    std::unordered_map<sdbusplus::message::signature, int> u =
-        { { sdbusplus::message::signature("iii"), 1 } };
+    ASSERT_EQ(m[sdbusplus::message::signature("iii")], 1);
+}
 
-    return 0;
+TEST(MessageNativeTypeConversions, SignatureInUnorderedMap)
+{
+    std::unordered_map<sdbusplus::message::signature, int> u =
+        { { sdbusplus::message::signature("iii"), 2 } };
+
+    ASSERT_EQ(u[sdbusplus::message::signature("iii")], 2);
 }
