diff options
Diffstat (limited to 'src/test/DBusBroadcastTest.cpp')
-rw-r--r-- | src/test/DBusBroadcastTest.cpp | 242 |
1 files changed, 115 insertions, 127 deletions
diff --git a/src/test/DBusBroadcastTest.cpp b/src/test/DBusBroadcastTest.cpp index b07571a..c74c296 100644 --- a/src/test/DBusBroadcastTest.cpp +++ b/src/test/DBusBroadcastTest.cpp @@ -1,9 +1,7 @@ -/* 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/. */ +// 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/. #include <gtest/gtest.h> @@ -18,30 +16,37 @@ #include <tuple> #include <type_traits> -#include <CommonAPI/CommonAPI.h> +#include <CommonAPI/CommonAPI.hpp> +#ifndef COMMONAPI_INTERNAL_COMPILATION #define COMMONAPI_INTERNAL_COMPILATION +#endif + +#include <CommonAPI/DBus/DBusConnection.hpp> +#include <CommonAPI/DBus/DBusProxy.hpp> -#include <CommonAPI/DBus/DBusConnection.h> -#include <CommonAPI/DBus/DBusProxy.h> -#include <CommonAPI/DBus/DBusRuntime.h> +#include "commonapi/tests/PredefinedTypeCollection.hpp" +#include "commonapi/tests/DerivedTypeCollection.hpp" +#include "v1_0/commonapi/tests/TestInterfaceProxy.hpp" +#include "v1_0/commonapi/tests/TestInterfaceStubDefault.hpp" +#include "v1_0/commonapi/tests/TestInterfaceDBusStubAdapter.hpp" -#include "commonapi/tests/PredefinedTypeCollection.h" -#include "commonapi/tests/DerivedTypeCollection.h" -#include "commonapi/tests/TestInterfaceProxy.h" -#include "commonapi/tests/TestInterfaceStubDefault.h" -#include "commonapi/tests/TestInterfaceDBusStubAdapter.h" +#include "v1_0/commonapi/tests/TestInterfaceDBusProxy.hpp" -#include "commonapi/tests/TestInterfaceDBusProxy.h" +#define VERSION v1_0 -class SelectiveBroadcastSender: public commonapi::tests::TestInterfaceStubDefault { +class SelectiveBroadcastSender: public VERSION::commonapi::tests::TestInterfaceStubDefault { public: SelectiveBroadcastSender(): acceptSubs(true), sentBroadcasts(0) { - } + } + + virtual ~SelectiveBroadcastSender() { + + } void startSending() { sentBroadcasts = 0; @@ -96,22 +101,10 @@ private: class DBusBroadcastTest: public ::testing::Test { protected: virtual void SetUp() { - runtime_ = CommonAPI::Runtime::load(); + runtime_ = CommonAPI::Runtime::get(); ASSERT_TRUE((bool)runtime_); - CommonAPI::DBus::DBusRuntime* dbusRuntime = dynamic_cast<CommonAPI::DBus::DBusRuntime*>(&(*runtime_)); - ASSERT_TRUE(dbusRuntime != NULL); - - proxyFactory_ = runtime_->createFactory(); - ASSERT_TRUE((bool)proxyFactory_); - proxyFactory2_ = runtime_->createFactory(); - ASSERT_TRUE((bool)proxyFactory2_); - - stubFactory_ = runtime_->createFactory(); - ASSERT_TRUE((bool)stubFactory_); - - servicePublisher_ = runtime_->getServicePublisher(); - ASSERT_TRUE((bool)servicePublisher_); + serviceAddressObject_ = CommonAPI::Address(serviceAddress_); selectiveBroadcastArrivedAtProxyFromSameFactory1 = 0; selectiveBroadcastArrivedAtProxyFromSameFactory2 = 0; @@ -119,21 +112,20 @@ protected: } virtual void TearDown() { - servicePublisher_->unregisterService(serviceAddress_); + runtime_->unregisterService(serviceAddressObject_.getDomain(), serviceAddressInterface_, serviceAddressObject_.getInstance()); } std::shared_ptr<CommonAPI::Runtime> runtime_; - std::shared_ptr<CommonAPI::Factory> proxyFactory_; - std::shared_ptr<CommonAPI::Factory> proxyFactory2_; - std::shared_ptr<CommonAPI::Factory> stubFactory_; - std::shared_ptr<CommonAPI::ServicePublisher> servicePublisher_; static const std::string serviceAddress_; - static const std::string nonstandardAddress_; + CommonAPI::Address serviceAddressObject_; + std::string serviceAddressInterface_; + static const CommonAPI::ConnectionId_t connectionId_; int selectiveBroadcastArrivedAtProxyFromSameFactory1; int selectiveBroadcastArrivedAtProxyFromSameFactory2; int selectiveBroadcastArrivedAtProxyFromOtherFactory; + public: void selectiveBroadcastCallbackForProxyFromSameFactory1() { selectiveBroadcastArrivedAtProxyFromSameFactory1++; @@ -149,29 +141,30 @@ public: }; const std::string DBusBroadcastTest::serviceAddress_ = "local:CommonAPI.DBus.tests.DBusProxyTestInterface:CommonAPI.DBus.tests.DBusProxyTestService"; -const std::string DBusBroadcastTest::nonstandardAddress_ = "local:non.standard.ServiceName:non.standard.participand.ID"; +const CommonAPI::ConnectionId_t DBusBroadcastTest::connectionId_ = "connection"; TEST_F(DBusBroadcastTest, ProxysCanHandleBroadcast) { auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); - auto proxy = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = + auto proxy = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); + + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = proxy->getTestPredefinedTypeBroadcastEvent(); bool callbackArrived = false; - broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { callbackArrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); stub->fireTestPredefinedTypeBroadcastEvent(2, "xyz"); @@ -183,28 +176,29 @@ TEST_F(DBusBroadcastTest, ProxysCanHandleBroadcast) { ASSERT_TRUE(callbackArrived); } -TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgain) { - auto stub = std::make_shared<SelectiveBroadcastSender>(); +TEST_F(DBusBroadcastTest, DISABLED_ProxysCanUnsubscribeFromBroadcastAndSubscribeAgain) { + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); - auto proxy = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = + auto proxy = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); + + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = proxy->getTestPredefinedTypeBroadcastEvent(); bool callbackArrived = false; - auto broadcastSubscription = broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription = broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { EXPECT_EQ(intParam, 1); callbackArrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); stub->fireTestPredefinedTypeBroadcastEvent(1, "xyz"); @@ -219,10 +213,9 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgain) { callbackArrived = false; - auto broadcastSubscription2 = broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription2 = broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { EXPECT_EQ(intParam, 2); callbackArrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); stub->fireTestPredefinedTypeBroadcastEvent(2, "xyz"); @@ -233,23 +226,24 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgain) { ASSERT_TRUE(callbackArrived); - broadcastEvent.unsubscribe(broadcastSubscription2); + broadcastEvent.unsubscribe(broadcastSubscription2); } -TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainInALoop) { - auto stub = std::make_shared<SelectiveBroadcastSender>(); +TEST_F(DBusBroadcastTest, DISABLED_ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainInALoop) { + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); - auto proxy = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxy = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = proxy->getTestPredefinedTypeBroadcastEvent(); for(unsigned int i=0; i<10; i++) { @@ -269,31 +263,31 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainInAL ASSERT_TRUE(callbackArrived); broadcastEvent.unsubscribe(broadcastSubscription); - } + } } -TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWithOtherProxy) { - auto stub = std::make_shared<SelectiveBroadcastSender>(); +TEST_F(DBusBroadcastTest, DISABLED_ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWithOtherProxy) { + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); - auto proxy = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxy = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = proxy->getTestPredefinedTypeBroadcastEvent(); bool callbackArrived = false; - auto broadcastSubscription = broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription = broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { EXPECT_EQ(intParam, 1); callbackArrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); stub->fireTestPredefinedTypeBroadcastEvent(1, "xyz"); @@ -306,17 +300,16 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWith broadcastEvent.unsubscribe(broadcastSubscription); - auto proxy2 = proxyFactory2_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxy2 = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent2 = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent2 = proxy->getTestPredefinedTypeBroadcastEvent(); callbackArrived = false; - auto broadcastSubscription2 = broadcastEvent2.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription2 = broadcastEvent2.subscribe([&](uint32_t intParam, std::string stringParam) { EXPECT_EQ(intParam, 2); callbackArrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); stub->fireTestPredefinedTypeBroadcastEvent(2, "xyz"); @@ -327,31 +320,31 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWith ASSERT_TRUE(callbackArrived); - broadcastEvent.unsubscribe(broadcastSubscription2); + broadcastEvent.unsubscribe(broadcastSubscription2); } -TEST_F(DBusBroadcastTest, ProxysCanCancelSubscriptionAndSubscribeAgainWithOtherProxy) { - auto stub = std::make_shared<SelectiveBroadcastSender>(); +TEST_F(DBusBroadcastTest, DISABLED_ProxysCanCancelSubscriptionAndSubscribeAgainWithOtherProxy) { + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); - auto proxy = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxy = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = proxy->getTestPredefinedTypeBroadcastEvent(); bool callbackArrived = false; - broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { EXPECT_EQ(intParam, 1); callbackArrived = true; - return CommonAPI::SubscriptionStatus::CANCEL; }); stub->fireTestPredefinedTypeBroadcastEvent(1, "xyz"); @@ -362,17 +355,16 @@ TEST_F(DBusBroadcastTest, ProxysCanCancelSubscriptionAndSubscribeAgainWithOtherP ASSERT_TRUE(callbackArrived); - auto proxy2 = proxyFactory2_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxy2 = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent2 = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent2 = proxy->getTestPredefinedTypeBroadcastEvent(); callbackArrived = false; - auto broadcastSubscription2 = broadcastEvent2.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription2 = broadcastEvent2.subscribe([&](uint32_t intParam, std::string stringParam) { EXPECT_EQ(intParam, 2); callbackArrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); stub->fireTestPredefinedTypeBroadcastEvent(2, "xyz"); @@ -383,42 +375,41 @@ TEST_F(DBusBroadcastTest, ProxysCanCancelSubscriptionAndSubscribeAgainWithOtherP ASSERT_TRUE(callbackArrived); - broadcastEvent2.unsubscribe(broadcastSubscription2); + broadcastEvent2.unsubscribe(broadcastSubscription2); } -TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWhileOtherProxyIsStillSubscribed) { +TEST_F(DBusBroadcastTest, DISABLED_ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWhileOtherProxyIsStillSubscribed) { // register service - auto stub = std::make_shared<SelectiveBroadcastSender>(); + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); // build 2 proxies from same factory - auto proxy = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); - auto proxy2 = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxy = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); + auto proxy2 = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent = proxy->getTestPredefinedTypeBroadcastEvent(); - commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent2 = + VERSION::commonapi::tests::TestInterfaceProxyDefault::TestPredefinedTypeBroadcastEvent& broadcastEvent2 = proxy2->getTestPredefinedTypeBroadcastEvent(); bool callback1Arrived = false; bool callback2Arrived = false; // subscribe for each proxy's broadcast event - auto broadcastSubscription = broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription = broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { callback1Arrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); - auto broadcastSubscription2 = broadcastEvent2.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + auto broadcastSubscription2 = broadcastEvent2.subscribe([&](uint32_t intParam, std::string stringParam) { callback2Arrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); // fire broadcast and wait for results @@ -450,9 +441,8 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWhil EXPECT_TRUE(onlyCallback2Arrived); // subscribe first proxy again - broadcastSubscription = broadcastEvent.subscribeCancellableListener([&](uint32_t intParam, std::string stringParam) -> CommonAPI::SubscriptionStatus { + broadcastSubscription = broadcastEvent.subscribe([&](uint32_t intParam, std::string stringParam) { callback1Arrived = true; - return CommonAPI::SubscriptionStatus::RETAIN; }); // fire broadcast another time @@ -470,25 +460,24 @@ TEST_F(DBusBroadcastTest, ProxysCanUnsubscribeFromBroadcastAndSubscribeAgainWhil EXPECT_TRUE(callbackOnBothSubscriptionsArrivedAgain); broadcastEvent.unsubscribe(broadcastSubscription); - broadcastEvent2.unsubscribe(broadcastSubscription2); + broadcastEvent2.unsubscribe(broadcastSubscription2); } - - -TEST_F(DBusBroadcastTest, ProxysCanSubscribeForSelectiveBroadcast) +TEST_F(DBusBroadcastTest, DISABLED_ProxysCanSubscribeForSelectiveBroadcast) { - auto proxyFromSameFactory1 = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxyFromSameFactory1 = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); ASSERT_TRUE((bool)proxyFromSameFactory1); - auto proxyFromSameFactory2 = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxyFromSameFactory2 = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); ASSERT_TRUE((bool)proxyFromSameFactory2); - auto proxyFromOtherFactory = proxyFactory2_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxyFromOtherFactory = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); ASSERT_TRUE((bool)proxyFromOtherFactory); - auto stub = std::make_shared<SelectiveBroadcastSender>(); + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); @@ -539,21 +528,22 @@ TEST_F(DBusBroadcastTest, ProxysCanSubscribeForSelectiveBroadcast) EXPECT_EQ(selectiveBroadcastArrivedAtProxyFromOtherFactory, 2); proxyFromSameFactory1->getTestSelectiveBroadcastSelectiveEvent().unsubscribe(subscriptionResult1); - EXPECT_EQ(stub->getNumberOfSubscribedClients(), 1); + EXPECT_EQ(stub->getNumberOfSubscribedClients(), 1); } TEST_F(DBusBroadcastTest, ProxysCanBeRejectedForSelectiveBroadcast) { - auto proxyFromSameFactory1 = proxyFactory_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxyFromSameFactory1 = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); ASSERT_TRUE((bool)proxyFromSameFactory1); - auto proxyFromOtherFactory = proxyFactory2_->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress_); + auto proxyFromOtherFactory = runtime_->buildProxy<VERSION::commonapi::tests::TestInterfaceProxy>(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance()); ASSERT_TRUE((bool)proxyFromOtherFactory); - auto stub = std::make_shared<SelectiveBroadcastSender>(); + auto stub = std::make_shared<SelectiveBroadcastSender>(); + serviceAddressInterface_ = stub->getStubAdapter()->getInterface(); - bool serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + bool serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); for (unsigned int i = 0; !serviceRegistered && i < 100; ++i) { - serviceRegistered = servicePublisher_->registerService(stub, serviceAddress_, stubFactory_); + serviceRegistered = runtime_->registerService(serviceAddressObject_.getDomain(), serviceAddressObject_.getInstance(), stub, connectionId_); usleep(10000); } ASSERT_TRUE(serviceRegistered); @@ -566,27 +556,25 @@ TEST_F(DBusBroadcastTest, ProxysCanBeRejectedForSelectiveBroadcast) { bool subbed = false; proxyFromSameFactory1->getTestSelectiveBroadcastSelectiveEvent().subscribe( - std::bind(&DBusBroadcastTest::selectiveBroadcastCallbackForProxyFromSameFactory1, this), - subbed); + std::bind(&DBusBroadcastTest::selectiveBroadcastCallbackForProxyFromSameFactory1, this)); ASSERT_EQ(stub->getNumberOfSubscribedClients(), 1); - ASSERT_TRUE(subbed); + //ASSERT_TRUE(subbed); stub->acceptSubs = false; proxyFromOtherFactory->getTestSelectiveBroadcastSelectiveEvent().subscribe( - std::bind(&DBusBroadcastTest::selectiveBroadcastCallbackForProxyFromOtherFactory, this), - subbed); + std::bind(&DBusBroadcastTest::selectiveBroadcastCallbackForProxyFromOtherFactory, this)); ASSERT_EQ(stub->getNumberOfSubscribedClients(), 1); - ASSERT_FALSE(subbed); + //ASSERT_FALSE(subbed); stub->send(); usleep(20000); ASSERT_EQ(selectiveBroadcastArrivedAtProxyFromSameFactory1, 1); - ASSERT_EQ(selectiveBroadcastArrivedAtProxyFromOtherFactory, 0); + ASSERT_EQ(selectiveBroadcastArrivedAtProxyFromOtherFactory, 0); } -#ifndef WIN32 +#ifndef __NO_MAIN__ int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); |