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_OBJECT
- public:
- /// 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_OBJECT
- private 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"
|