| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 | /* *  ctkEventDispatcherLocalTest.cpp *  ctkEventBusTest * *  Created by Daniele Giunchi on 20/04/10. *  Copyright 2009 B3C. All rights reserved. * *  See Licence at: http://tiny.cc/QXJ4D * */#include "ctkTestSuite.h"#include <ctkEventDispatcherLocal.h>#include <ctkBusEvent.h>using namespace ctkEventBus;//-------------------------------------------------------------------------/** Class name: ctkObjectCustom Custom object needed for testing. */class testObjectCustomForDispatcherLocal : public QObject {    Q_OBJECTpublic:    /// constructor.    testObjectCustomForDispatcherLocal();    /// Return the var's value.    int var() {return m_Var;}public Q_SLOTS:    /// Test slot that will increment the value of m_Var when an UPDATE_OBJECT event is raised.    // no return value    void setObjectValue0(){};    void setObjectValue1(int v1){QVERIFY(v1 != 0);};    void setObjectValue2(int v1, int v2){QVERIFY(v1 != 0);QVERIFY(v2 != 0);};    void setObjectValue3(int v1, int v2, int v3){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);};    void setObjectValue4(int v1, int v2, int v3, int v4){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);};    void setObjectValue5(int v1, int v2, int v3, int v4, int v5){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);QVERIFY(v5 != 0);};    void setObjectValue6(int v1, int v2, int v3, int v4, int v5, int v6){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);QVERIFY(v5 != 0);QVERIFY(v6 != 0);};    void setObjectValue7(int v1, int v2, int v3, int v4, int v5, int v6, int v7){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);QVERIFY(v5 != 0);QVERIFY(v6 != 0);QVERIFY(v7 != 0);};    void setObjectValue8(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);QVERIFY(v5 != 0);QVERIFY(v6 != 0);QVERIFY(v7 != 0);QVERIFY(v8 != 0);};    void setObjectValue9(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);QVERIFY(v5 != 0);QVERIFY(v6 != 0);QVERIFY(v7 != 0);QVERIFY(v8 != 0);QVERIFY(v9 != 0);};    void setObjectValue10(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9, int v10){QVERIFY(v1 != 0);QVERIFY(v2 != 0);QVERIFY(v3 != 0);QVERIFY(v4 != 0);QVERIFY(v5 != 0);QVERIFY(v6 != 0);QVERIFY(v7 != 0);QVERIFY(v8 != 0);QVERIFY(v9 != 0);QVERIFY(v10 != 0);};    // with return value    int setObjectValue0WithReturnValue(){ return 0;};    int setObjectValue1WithReturnValue(int v1){return v1;};    int setObjectValue2WithReturnValue(int v1, int v2){return v1 + v2;};    int setObjectValue3WithReturnValue(int v1, int v2, int v3){return v1 + v2 + v3;};    int setObjectValue4WithReturnValue(int v1, int v2, int v3, int v4){return v1 + v2 + v3 + v4;};    int setObjectValue5WithReturnValue(int v1, int v2, int v3, int v4, int v5){return v1 + v2 + v3 + v4 +v5;};    int setObjectValue6WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6){return v1 + v2 + v3 + v4 +v5 + v6;};    int setObjectValue7WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7){return v1 + v2 + v3 + v4 +v5 + v6 + v7;};    int setObjectValue8WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8){return v1 + v2 + v3 + v4 +v5 + v6 + v7 + v8;};    int setObjectValue9WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9){return v1 + v2 + v3 + v4 +v5 + v6 + v7 + v8 + v9;};    int setObjectValue10WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9, int v10){return v1 + v2 + v3 + v4 +v5 + v6 + v7 + v8 + v9 + v10;};Q_SIGNALS:    void signalSetObjectValue0();    void signalSetObjectValue1(int v1);    void signalSetObjectValue2(int v1, int v2);    void signalSetObjectValue3(int v1, int v2, int v3);    void signalSetObjectValue4(int v1, int v2, int v3, int v4);    void signalSetObjectValue5(int v1, int v2, int v3, int v4, int v5);    void signalSetObjectValue6(int v1, int v2, int v3, int v4, int v5, int v6);    void signalSetObjectValue7(int v1, int v2, int v3, int v4, int v5, int v6, int v7);    void signalSetObjectValue8(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8);    void signalSetObjectValue9(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9);    void signalSetObjectValue10(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9, int v10);    int signalSetObjectValue0WithReturnValue();    int signalSetObjectValue1WithReturnValue(int v1);    int signalSetObjectValue2WithReturnValue(int v1, int v2);    int signalSetObjectValue3WithReturnValue(int v1, int v2, int v3);    int signalSetObjectValue4WithReturnValue(int v1, int v2, int v3, int v4);    int signalSetObjectValue5WithReturnValue(int v1, int v2, int v3, int v4, int v5);    int signalSetObjectValue6WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6);    int signalSetObjectValue7WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7);    int signalSetObjectValue8WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8);    int signalSetObjectValue9WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9);    int signalSetObjectValue10WithReturnValue(int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9, int v10);private:    int m_Var; ///< Test var.};testObjectCustomForDispatcherLocal::testObjectCustomForDispatcherLocal() : m_Var(0) {}//-------------------------------------------------------------------------/** Class name: ctkEventDispatcherLocalTest This class implements the test suite for ctkEventDispatcherlocal/ *///! <title>//ctkEventDispatcherLocal//! </title>//! <description>//ctkEventDispatcherLocal allows dispatching events coming from local//application to attached observers.//! </description>class ctkEventDispatcherLocalTest : public QObject {    Q_OBJECTprivate Q_SLOTS:    /// Initialize test variables    void initTestCase() {        m_ObjTest = new testObjectCustomForDispatcherLocal;        m_EventDispatcherLocal =new ctkEventBus::ctkEventDispatcherLocal;    }    /// Cleanup test variables memory allocation.    void cleanupTestCase() {        delete m_ObjTest;        delete m_EventDispatcherLocal;    }    /// ctkEventDispatcherLocal allocation test case.    void ctkEventDispatcherLocalAllocationTest();    /// notify event test which cover all the possibilities in terms of arguments    void notifyEventWithoutReturnValueTest();    /// notify event test which cover all the possibilities in terms of arguments with returned value    void notifyEventWitReturnValueTest();private:    testObjectCustomForDispatcherLocal *m_ObjTest; ///< Test Object var    ctkEventDispatcherLocal *m_EventDispatcherLocal; ///< Test var.};void ctkEventDispatcherLocalTest::ctkEventDispatcherLocalAllocationTest() {    QVERIFY(m_EventDispatcherLocal != NULL);}void ctkEventDispatcherLocalTest::notifyEventWithoutReturnValueTest() {    //test with events which returns no value    QString topic0 = "ctk/local/setObjectValue0";    QString topic1 = "ctk/local/setObjectValue1";    QString topic2 = "ctk/local/setObjectValue2";    QString topic3 = "ctk/local/setObjectValue3";    QString topic4 = "ctk/local/setObjectValue4";    QString topic5 = "ctk/local/setObjectValue5";    QString topic6 = "ctk/local/setObjectValue6";    QString topic7 = "ctk/local/setObjectValue7";    QString topic8 = "ctk/local/setObjectValue8";    QString topic9 = "ctk/local/setObjectValue9";    QString topic10 = "ctk/local/setObjectValue10";    //signal    ctkBusEvent *propSignal0 = new ctkBusEvent(topic0, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue0()");    m_EventDispatcherLocal->registerSignal(*propSignal0);    ctkBusEvent *propSignal1 = new ctkBusEvent(topic1, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue1(int)");    m_EventDispatcherLocal->registerSignal(*propSignal1);    ctkBusEvent *propSignal2 = new ctkBusEvent(topic2, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue2(int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal2);    ctkBusEvent *propSignal3 = new ctkBusEvent(topic3, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue3(int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal3);    ctkBusEvent *propSignal4 = new ctkBusEvent(topic4, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue4(int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal4);    ctkBusEvent *propSignal5 = new ctkBusEvent(topic5, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue5(int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal5);    ctkBusEvent *propSignal6 = new ctkBusEvent(topic6, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue6(int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal6);    ctkBusEvent *propSignal7 = new ctkBusEvent(topic7, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue7(int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal7);    ctkBusEvent *propSignal8 = new ctkBusEvent(topic8, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue8(int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal8);    ctkBusEvent *propSignal9 = new ctkBusEvent(topic9, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue9(int,int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal9);    ctkBusEvent *propSignal10 = new ctkBusEvent(topic10, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue10(int,int,int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal10);    //callback    ctkBusEvent *propCallback0 = new ctkBusEvent(topic0, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue0()");    m_EventDispatcherLocal->addObserver(*propCallback0);    ctkBusEvent *propCallback1 = new ctkBusEvent(topic1, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue1(int)");    m_EventDispatcherLocal->addObserver(*propCallback1);    ctkBusEvent *propCallback2 = new ctkBusEvent(topic2, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue2(int,int)");    m_EventDispatcherLocal->addObserver(*propCallback2);    ctkBusEvent *propCallback3 = new ctkBusEvent(topic3, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue3(int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback3);    ctkBusEvent *propCallback4 = new ctkBusEvent(topic4, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue4(int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback4);    ctkBusEvent *propCallback5 = new ctkBusEvent(topic5, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue5(int,int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback5);    ctkBusEvent *propCallback6 = new ctkBusEvent(topic6, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue6(int,int,int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback6);    ctkBusEvent *propCallback7 = new ctkBusEvent(topic7, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue7(int,int,int,int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback7);    ctkBusEvent *propCallback8 = new ctkBusEvent(topic8, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue8(int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback8);    ctkBusEvent *propCallback9 = new ctkBusEvent(topic9, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue9(int,int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback9);    ctkBusEvent *propCallback10 = new ctkBusEvent(topic10, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue10(int,int,int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->addObserver(*propCallback10);    ctkEventArgumentsList argList;    m_EventDispatcherLocal->notifyEvent(*propSignal0);    m_EventDispatcherLocal->notifyEvent(*propSignal0, &argList);    int argCounter=1;    for( ; argCounter <= 10; argCounter++) {        if(argCounter != 0) {            argList.append(ctkEventArgument(int, argCounter));        }        QString topicToNotify = "ctk/local/setObjectValue";        topicToNotify.append(QString::number(argCounter));        ctkBusEvent *notEvent = new ctkBusEvent(topicToNotify, ctkDictionary());        m_EventDispatcherLocal->notifyEvent(*notEvent, &argList);        delete notEvent;    }    //delete all events    delete propSignal0;    delete propSignal1;    delete propSignal2;    delete propSignal3;    delete propSignal4;    delete propSignal5;    delete propSignal6;    delete propSignal7;    delete propSignal8;    delete propSignal9;    delete propSignal10;    //delete all events    delete propCallback0;    delete propCallback1;    delete propCallback2;    delete propCallback3;    delete propCallback4;    delete propCallback5;    delete propCallback6;    delete propCallback7;    delete propCallback8;    delete propCallback9;    delete propCallback10;}void ctkEventDispatcherLocalTest::notifyEventWitReturnValueTest() {    //test with events which returns no value    QString topic0 = "ctk/local/setObjectValue0WithReturnValue";    QString topic1 = "ctk/local/setObjectValue1WithReturnValue";    QString topic2 = "ctk/local/setObjectValue2WithReturnValue";    QString topic3 = "ctk/local/setObjectValue3WithReturnValue";    QString topic4 = "ctk/local/setObjectValue4WithReturnValue";    QString topic5 = "ctk/local/setObjectValue5WithReturnValue";    QString topic6 = "ctk/local/setObjectValue6WithReturnValue";    QString topic7 = "ctk/local/setObjectValue7WithReturnValue";    QString topic8 = "ctk/local/setObjectValue8WithReturnValue";    QString topic9 = "ctk/local/setObjectValue9WithReturnValue";    QString topic10 = "ctk/local/setObjectValue10WithReturnValue";    //signal    ctkBusEvent *propSignal0 = new ctkBusEvent(topic0, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue0WithReturnValue()");    m_EventDispatcherLocal->registerSignal(*propSignal0);    ctkBusEvent *propSignal1 = new ctkBusEvent(topic1, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue1WithReturnValue(int)");    m_EventDispatcherLocal->registerSignal(*propSignal1);    ctkBusEvent *propSignal2 = new ctkBusEvent(topic2, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue2WithReturnValue(int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal2);    ctkBusEvent *propSignal3 = new ctkBusEvent(topic3, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue3WithReturnValue(int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal3);    ctkBusEvent *propSignal4 = new ctkBusEvent(topic4, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue4WithReturnValue(int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal4);    ctkBusEvent *propSignal5 = new ctkBusEvent(topic5, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue5WithReturnValue(int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal5);    ctkBusEvent *propSignal6 = new ctkBusEvent(topic6, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue6WithReturnValue(int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal6);    ctkBusEvent *propSignal7 = new ctkBusEvent(topic7, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue7WithReturnValue(int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal7);    ctkBusEvent *propSignal8 = new ctkBusEvent(topic8, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue8WithReturnValue(int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal8);    ctkBusEvent *propSignal9 = new ctkBusEvent(topic9, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue9WithReturnValue(int,int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal9);    ctkBusEvent *propSignal10 = new ctkBusEvent(topic10, ctkEventTypeLocal, ctkSignatureTypeSignal, m_ObjTest, "signalSetObjectValue10WithReturnValue(int,int,int,int,int,int,int,int,int,int)");    m_EventDispatcherLocal->registerSignal(*propSignal10);    //callback    ctkBusEvent *propCallback0 = new ctkBusEvent(topic0, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue0WithReturnValue()");    bool result = m_EventDispatcherLocal->addObserver(*propCallback0);    ctkBusEvent *propCallback1 = new ctkBusEvent(topic1, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue1WithReturnValue(int)");    result = m_EventDispatcherLocal->addObserver(*propCallback1);    ctkBusEvent *propCallback2 = new ctkBusEvent(topic2, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue2WithReturnValue(int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback2);    ctkBusEvent *propCallback3 = new ctkBusEvent(topic3, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue3WithReturnValue(int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback3);    ctkBusEvent *propCallback4 = new ctkBusEvent(topic4, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue4WithReturnValue(int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback4);    ctkBusEvent *propCallback5 = new ctkBusEvent(topic5, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue5WithReturnValue(int,int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback5);    ctkBusEvent *propCallback6 = new ctkBusEvent(topic6, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue6WithReturnValue(int,int,int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback6);    ctkBusEvent *propCallback7 = new ctkBusEvent(topic7, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue7WithReturnValue(int,int,int,int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback7);    ctkBusEvent *propCallback8 = new ctkBusEvent(topic8, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue8WithReturnValue(int,int,int,int,int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback8);    ctkBusEvent *propCallback9 = new ctkBusEvent(topic9, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue9WithReturnValue(int,int,int,int,int,int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback9);    ctkBusEvent *propCallback10 = new ctkBusEvent(topic10, ctkEventTypeLocal, ctkSignatureTypeCallback, m_ObjTest, "setObjectValue10WithReturnValue(int,int,int,int,int,int,int,int,int,int)");    result = m_EventDispatcherLocal->addObserver(*propCallback10);    ctkEventArgumentsList argList;    int returnValue = -1;    ctkGenericReturnArgument ret_val = ctkEventReturnArgument(int,returnValue);    int argCounter=0;    bool ret(false);    for( ; argCounter <= 10; argCounter++) {        returnValue = -1;        int *toAppend = new int(argCounter);        if(argCounter != 0) {             argList.append(ctkEventArgument(int, *toAppend));        }        QString topicToNotify = "ctk/local/setObjectValue";        topicToNotify.append(QString::number(argCounter));        topicToNotify.append("WithReturnValue");        ctkBusEvent *notEvent = new ctkBusEvent(topicToNotify, ctkDictionary());        m_EventDispatcherLocal->notifyEvent(*notEvent, &argList, &ret_val);        int c = 0, size = argList.count(), tempSum = 0;        for(; c<size;c++) {            tempSum += *((int*)(argList.at(c).data()));        }        ret = returnValue == tempSum;        QVERIFY(ret);        delete notEvent;    }    for( ;argCounter < 10; argCounter++) {        int *i = (int *)(argList.at(argCounter).data());        delete i;    }    //delete all events    delete propSignal0;    delete propSignal1;    delete propSignal2;    delete propSignal3;    delete propSignal4;    delete propSignal5;    delete propSignal6;    delete propSignal7;    delete propSignal8;    delete propSignal9;    delete propSignal10;    //delete all events    delete propCallback0;    delete propCallback1;    delete propCallback2;    delete propCallback3;    delete propCallback4;    delete propCallback5;    delete propCallback6;    delete propCallback7;    delete propCallback8;    delete propCallback9;    delete propCallback10;}CTK_REGISTER_TEST(ctkEventDispatcherLocalTest);#include "ctkEventDispatcherLocalTest.moc"
 |