summaryrefslogtreecommitdiff
path: root/src/test/DBusTestUtils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/DBusTestUtils.hpp')
-rw-r--r--src/test/DBusTestUtils.hpp88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/test/DBusTestUtils.hpp b/src/test/DBusTestUtils.hpp
new file mode 100644
index 0000000..5761ff3
--- /dev/null
+++ b/src/test/DBusTestUtils.hpp
@@ -0,0 +1,88 @@
+// Copyright (C) 2013-2015 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef __DBUS_TEST_UTILS__
+#define __DBUS_TEST_UTILS__
+
+#ifndef COMMONAPI_INTERNAL_COMPILATION
+#define COMMONAPI_INTERNAL_COMPILATION
+#endif
+
+#include <dbus/dbus.h>
+#include <CommonAPI/DBus/DBusServiceRegistry.hpp>
+#include <CommonAPI/DBus/DBusMessage.hpp>
+
+inline char eliminateZeroes(char val) {
+ return !val ? '0' : val;
+}
+
+inline void printLibdbusMessageBody(char* data, uint32_t fromByteIndex, uint32_t toByteIndex) {
+ for (unsigned int i = fromByteIndex; i < toByteIndex; i++) {
+ std::cout << eliminateZeroes(data[i]);
+ if (i % 8 == 7) {
+ std::cout << std::endl;
+ }
+ }
+ std::cout << std::endl;
+}
+
+inline void printLibdbusMessage(DBusMessage* libdbusMessage, uint32_t fromByteIndex, uint32_t toByteIndex) {
+ char* data = dbus_message_get_body(libdbusMessage);
+ printLibdbusMessageBody(data, fromByteIndex, toByteIndex);
+}
+
+inline void printLibdbusMessage(DBusMessage* libdbusMessage) {
+ printLibdbusMessage(libdbusMessage, 0, dbus_message_get_body_length(libdbusMessage));
+}
+
+
+inline void printDBusMessage(CommonAPI::DBus::DBusMessage& dbusMessage) {
+ printLibdbusMessageBody(dbusMessage.getBodyData(), 0, dbusMessage.getBodyLength());
+}
+
+inline std::string toString(CommonAPI::DBus::DBusServiceRegistry::DBusRecordState dbusRecordState) {
+ switch(dbusRecordState) {
+ case CommonAPI::DBus::DBusServiceRegistry::DBusRecordState::AVAILABLE:
+ return "AVAILABLE";
+ case CommonAPI::DBus::DBusServiceRegistry::DBusRecordState::NOT_AVAILABLE:
+ return "NOT_AVAILABLE";
+ case CommonAPI::DBus::DBusServiceRegistry::DBusRecordState::RESOLVED:
+ return "RESOLVED";
+ case CommonAPI::DBus::DBusServiceRegistry::DBusRecordState::RESOLVING:
+ return "RESOLVING";
+ case CommonAPI::DBus::DBusServiceRegistry::DBusRecordState::UNKNOWN:
+ return "UNKNOWN";
+ }
+ return "";
+}
+
+inline std::string toString(CommonAPI::AvailabilityStatus state) {
+ switch(state) {
+ case CommonAPI::AvailabilityStatus::AVAILABLE:
+ return "AVAILABLE";
+ case CommonAPI::AvailabilityStatus::NOT_AVAILABLE:
+ return "NOT_AVAILABLE";
+ case CommonAPI::AvailabilityStatus::UNKNOWN:
+ return "UNKNOWN";
+ }
+ return "";
+}
+
+inline std::string toString(CommonAPI::CallStatus state) {
+ switch(state) {
+ case CommonAPI::CallStatus::CONNECTION_FAILED:
+ return "CONNECTION_FAILED";
+ case CommonAPI::CallStatus::NOT_AVAILABLE:
+ return "NOT_AVAILABLE";
+ case CommonAPI::CallStatus::OUT_OF_MEMORY:
+ return "OUT_OF_MEMORY";
+ case CommonAPI::CallStatus::REMOTE_ERROR:
+ return "REMOTE_ERROR";
+ case CommonAPI::CallStatus::SUCCESS:
+ return "SUCCESS";
+ }
+ return "";
+}
+#endif //__DBUS_TEST_UTILS__