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);
}