test: convert message_native_types to gtest

Change-Id: I8aa9e996505d3083ff5650c3fa5107d4143ff482
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
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);
 }