virtual void TearDown() {
        for (auto it: rootStubs_) {
            runtime_->getServicePublisher()->unregisterService(it.first);
        }

        rootStubs_.clear();
        rootProxies_.clear();

        auto dbusServiceFactory = std::dynamic_pointer_cast<CommonAPI::DBus::DBusFactory>(serviceFactory_);
        auto stubDBusConnection = dbusServiceFactory->getDbusConnection();
        ASSERT_TRUE(stubDBusConnection->releaseServiceName(dbusServiceName));

        usleep(50000);
    }
    virtual void SetUp() {
        runtime_ = std::dynamic_pointer_cast<CommonAPI::DBus::DBusRuntime>(CommonAPI::Runtime::load());
        serviceFactory_ = runtime_->createFactory();
        clientFactory_ = runtime_->createFactory();
        leafInstanceAvailability = CommonAPI::AvailabilityStatus::UNKNOWN;
        branchInstanceAvailability = CommonAPI::AvailabilityStatus::UNKNOWN;

        manualTestDBusConnection_ = CommonAPI::DBus::DBusConnection::getSessionBus();
        ASSERT_TRUE(manualTestDBusConnection_->connect());

        auto dbusServiceFactory = std::dynamic_pointer_cast<CommonAPI::DBus::DBusFactory>(serviceFactory_);
        auto stubDBusConnection = dbusServiceFactory->getDbusConnection();
        ASSERT_TRUE(stubDBusConnection->connect());
        ASSERT_TRUE(stubDBusConnection->requestServiceNameAndBlock(dbusServiceName));
    }
示例#3
0
/**
 * @internal
 * Send Elektra's D-Bus message.
 *
 * @param signalName signal name
 * @param keyName    key name
 */
static void dbusSendMessage (const char * signalName, const char * keyName)
{
	DBusMessage * message;
	const char * interface = "org.libelektra";
	const char * path = "/org/libelektra/configuration";

	DBusConnection * connection = getDbusConnection (testBusType);
	exit_if_fail (connection != NULL, "could not get bus connection");

	message = dbus_message_new_signal (path, interface, signalName);
	exit_if_fail (message, "could not allocate dbus message");

	exit_if_fail (dbus_message_append_args (message, DBUS_TYPE_STRING, &keyName, DBUS_TYPE_INVALID), "could not add message arguments");

	dbus_connection_send (connection, message, NULL);

	dbus_message_unref (message);
	dbus_connection_unref (connection);

	return;
}