| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | /* *  ctkNetworkConnectorQXMLRPCTest.cpp *  ctkNetworkConnectorQXMLRPCTest * *  Created by Daniele Giunchi on 27/03/09. *  Copyright 2009 B3C. All rights reserved. * *  See Licence at: http://tiny.cc/QXJ4D * */#include "ctkTestSuite.h"#include <ctkNetworkConnectorQXMLRPC.h>#include <ctkEventBusManager.h>#include <QApplication>using namespace ctkEventBus;//-------------------------------------------------------------------------/** Class name: ctkObjectCustom Custom object needed for testing. */class testObjectCustomForNetworkConnectorXMLRPC : public QObject {    Q_OBJECTpublic:    /// constructor.    testObjectCustomForNetworkConnectorXMLRPC();    /// Return tha 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.    void updateObject();    void setObjectValue(int v);Q_SIGNALS:    void valueModified(int v);    void objectModified();private:    int m_Var; ///< Test var.};testObjectCustomForNetworkConnectorXMLRPC::testObjectCustomForNetworkConnectorXMLRPC() : m_Var(0) {}void testObjectCustomForNetworkConnectorXMLRPC::updateObject() {    m_Var++;}void testObjectCustomForNetworkConnectorXMLRPC::setObjectValue(int v) {    m_Var = v;}/** Class name: ctkNetworkConnectorQXMLRPCTest This class implements the test suite for ctkNetworkConnectorQXMLRPC. *///! <title>//ctkNetworkConnectorQXMLRPC//! </title>//! <description>//ctkNetworkConnectorQXMLRPC provides the connection with xml-rpc protocol.//It has been used qxmlrpc library.//! </description>class ctkNetworkConnectorQXMLRPCTest : public QObject {    Q_OBJECTprivate Q_SLOTS:    /// Initialize test variables    void initTestCase() {        m_EventBus = ctkEventBusManager::instance();        m_NetWorkConnectorQXMLRPC = new ctkEventBus::ctkNetworkConnectorQXMLRPC();        m_ObjectTest = new testObjectCustomForNetworkConnectorXMLRPC();    }    /// Cleanup tes variables memory allocation.    void cleanupTestCase() {        if(m_ObjectTest) {            delete m_ObjectTest;            m_ObjectTest = NULL;        }        delete m_NetWorkConnectorQXMLRPC;        m_EventBus->shutdown();    }    /// Check the existence of the ctkNetworkConnectorQXMLRPCe singletone creation.    void ctkNetworkConnectorQXMLRPCConstructorTest();    /// Check the existence of the ctkNetworkConnectorQXMLRPCe singletone creation.    void ctkNetworkConnectorQXMLRPCCommunictionTest();private:    ctkEventBusManager *m_EventBus; ///< event bus instance    ctkNetworkConnectorQXMLRPC *m_NetWorkConnectorQXMLRPC; ///< EventBus test variable instance.    testObjectCustomForNetworkConnectorXMLRPC *m_ObjectTest;};void ctkNetworkConnectorQXMLRPCTest::ctkNetworkConnectorQXMLRPCConstructorTest() {    QVERIFY(m_NetWorkConnectorQXMLRPC != NULL);}void ctkNetworkConnectorQXMLRPCTest::ctkNetworkConnectorQXMLRPCCommunictionTest() {    m_NetWorkConnectorQXMLRPC->createServer(8000);    m_NetWorkConnectorQXMLRPC->startListen();    // Register callback (done by the remote object).    ctkRegisterLocalCallback("ctk/local/eventBus/globalUpdate", m_ObjectTest, "updateObject()");    //m_EventBus->createClient("XMLRPC", "localhost", 8000);    m_NetWorkConnectorQXMLRPC->createClient("localhost", 8000);    //create list to send from the client    //first parameter is a list which contains event prperties    QVariantList eventParameters;    eventParameters.append("ctk/local/eventBus/globalUpdate");    eventParameters.append(ctkEventTypeLocal);    eventParameters.append(ctkSignatureTypeCallback);    eventParameters.append("updateObject()");    QVariantList dataParameters;    ctkEventArgumentsList listToSend;    listToSend.append(ctkEventArgument(QVariantList, eventParameters));    listToSend.append(ctkEventArgument(QVariantList, dataParameters));    m_NetWorkConnectorQXMLRPC->send("ctk/remote/eventBus/comunication/send/xmlrpc", &listToSend);    QTime dieTime = QTime::currentTime().addSecs(3);    while(QTime::currentTime() < dieTime) {       QCoreApplication::processEvents(QEventLoop::AllEvents, 3);    }}CTK_REGISTER_TEST(ctkNetworkConnectorQXMLRPCTest);#include "ctkNetworkConnectorQXMLRPCTest.moc"
 |