summaryrefslogtreecommitdiff
path: root/src/test/DBusTestUtils.h
blob: 0ed4938dee7807c2bb77ff37a6feaf20a3914e10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/* Copyright (C) 2013 BMW Group
 * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
 * Author: Juergen Gehring (juergen.gehring@bmw.de)
 * 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__

#include <dbus/dbus.h>
#include <CommonAPI/DBus/DBusServiceRegistry.h>
#include <CommonAPI/DBus/DBusMessage.h>

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__