ctkNetworkConnectorZeroMQTest.cpp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /*
  2. * ctkNetworkConnectorZeroMQTest.cpp
  3. * ctkNetworkConnectorZeroMQTest
  4. *
  5. * Created by Daniele Giunchi on 27/03/09.
  6. * Copyright 2009 B3C. All rights reserved.
  7. *
  8. * See Licence at: http://tiny.cc/QXJ4D
  9. *
  10. */
  11. #include "ctkTestSuite.h"
  12. #include <ctkNetworkConnectorZeroMQ.h>
  13. #include <ctkEventBusManager.h>
  14. #include <QApplication>
  15. using namespace ctkEventBus;
  16. //-------------------------------------------------------------------------
  17. /**
  18. Class name: ctkObjectCustom
  19. Custom object needed for testing.
  20. */
  21. class testObjectCustomForNetworkConnectorZeroMQ : public QObject {
  22. Q_OBJECT
  23. public:
  24. /// constructor.
  25. testObjectCustomForNetworkConnectorZeroMQ();
  26. /// Return tha var's value.
  27. int var() {return m_Var;}
  28. public Q_SLOTS:
  29. /// Test slot that will increment the value of m_Var when an UPDATE_OBJECT event is raised.
  30. void updateObject();
  31. void setObjectValue(int v);
  32. Q_SIGNALS:
  33. void valueModified(int v);
  34. void objectModified();
  35. private:
  36. int m_Var; ///< Test var.
  37. };
  38. testObjectCustomForNetworkConnectorZeroMQ::testObjectCustomForNetworkConnectorZeroMQ() : m_Var(0) {
  39. }
  40. void testObjectCustomForNetworkConnectorZeroMQ::updateObject() {
  41. m_Var++;
  42. }
  43. void testObjectCustomForNetworkConnectorZeroMQ::setObjectValue(int v) {
  44. m_Var = v;
  45. }
  46. /**
  47. Class name: ctkNetworkConnectorZeroMQTest
  48. This class implements the test suite for ctkNetworkConnectorZeroMQ.
  49. */
  50. //! <title>
  51. //ctkNetworkConnectorZeroMQ
  52. //! </title>
  53. //! <description>
  54. //ctkNetworkConnectorZeroMQ provides the connection with 0MQ library.
  55. //It has been used qxmlrpc library.
  56. //! </description>
  57. class ctkNetworkConnectorZeroMQTest : public QObject {
  58. Q_OBJECT
  59. private Q_SLOTS:
  60. /// Initialize test variables
  61. void initTestCase() {
  62. m_EventBus = ctkEventBusManager::instance();
  63. m_NetWorkConnectorZeroMQ = new ctkEventBus::ctkNetworkConnectorZeroMQ();
  64. m_ObjectTest = new testObjectCustomForNetworkConnectorZeroMQ();
  65. }
  66. /// Cleanup tes variables memory allocation.
  67. void cleanupTestCase() {
  68. if(m_ObjectTest) {
  69. delete m_ObjectTest;
  70. m_ObjectTest = NULL;
  71. }
  72. delete m_NetWorkConnectorZeroMQ;
  73. m_EventBus->shutdown();
  74. }
  75. /// Check the existence of the ctkNetworkConnectorZeroMQe singletone creation.
  76. void ctkNetworkConnectorZeroMQConstructorTest();
  77. /// Check the existence of the ctkNetworkConnectorZeroMQe singletone creation.
  78. void ctkNetworkConnectorZeroMQCommunictionTest();
  79. private:
  80. ctkEventBusManager *m_EventBus; ///< event bus instance
  81. ctkNetworkConnectorZeroMQ *m_NetWorkConnectorZeroMQ; ///< EventBus test variable instance.
  82. testObjectCustomForNetworkConnectorZeroMQ *m_ObjectTest;
  83. };
  84. void ctkNetworkConnectorZeroMQTest::ctkNetworkConnectorZeroMQConstructorTest() {
  85. QVERIFY(m_NetWorkConnectorZeroMQ != NULL);
  86. }
  87. void ctkNetworkConnectorZeroMQTest::ctkNetworkConnectorZeroMQCommunictionTest() {
  88. QTime dieTime = QTime::currentTime().addSecs(3);
  89. while(QTime::currentTime() < dieTime) {
  90. QCoreApplication::processEvents(QEventLoop::AllEvents, 3);
  91. }
  92. }
  93. CTK_REGISTER_TEST(ctkNetworkConnectorZeroMQTest);
  94. #include "ctkNetworkConnectorZeroMQTest.moc"