initial commit
This commit is contained in:
commit
4b60ece582
327 changed files with 28286 additions and 0 deletions
92
test/testDispatcher.h
Normal file
92
test/testDispatcher.h
Normal file
|
@ -0,0 +1,92 @@
|
|||
#ifndef TESTDISPATCHER_H
|
||||
#define TESTDISPATCHER_H
|
||||
|
||||
#include <cxxtest/TestSuite.h>
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QTimer>
|
||||
|
||||
#include <wDispatcher/dispatcher.h>
|
||||
#include <wDispatcher/handler.h>
|
||||
#include <wType/event.h>
|
||||
|
||||
class TestObject: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestObject(const W::Address& addr, W::Dispatcher* p_dp):
|
||||
QObject(),
|
||||
right_h(0),
|
||||
wrong_h(0),
|
||||
dp(p_dp)
|
||||
{
|
||||
right_h = W::Handler::create(addr + W::Address({u"right"}), this, &TestObject::right);
|
||||
wrong_h = W::Handler::create(addr + W::Address({u"wrong"}), this, &TestObject::wrong);
|
||||
|
||||
dp->registerHandler(right_h);
|
||||
dp->registerHandler(wrong_h);
|
||||
}
|
||||
|
||||
~TestObject()
|
||||
{
|
||||
dp->unregisterHandler(right_h);
|
||||
dp->unregisterHandler(wrong_h);
|
||||
|
||||
delete right_h;
|
||||
delete wrong_h;
|
||||
}
|
||||
|
||||
void right(const W::Object& data)
|
||||
{
|
||||
emit success();
|
||||
}
|
||||
|
||||
void wrong(const W::Object& data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
W::Handler* right_h;
|
||||
W::Handler* wrong_h;
|
||||
W::Dispatcher* dp;
|
||||
|
||||
signals:
|
||||
void success();
|
||||
|
||||
public slots:
|
||||
void launch()
|
||||
{
|
||||
W::Event ev(W::Address({u"client", u"123", u"some_hop", u"main", u"right"}), W::String(u"hello!"));
|
||||
dp->pass(ev);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
class TestDispatcher : public CxxTest::TestSuite
|
||||
{
|
||||
|
||||
public:
|
||||
void testEventPassing()
|
||||
{
|
||||
char a1[] = "nothing";
|
||||
char* argv[] = {a1};
|
||||
int argc = (int)(sizeof(argv) / sizeof(argv[0])) - 1;
|
||||
QCoreApplication app (argc, argv);
|
||||
|
||||
W::Dispatcher* root_dp = new W::Dispatcher();
|
||||
|
||||
TestObject *test_object = new TestObject(W::Address({u"client", u"123", u"some_hop", u"main"}), root_dp);
|
||||
|
||||
QObject::connect(test_object, SIGNAL(success()), &app, SLOT(quit()));
|
||||
|
||||
QTimer::singleShot(0, test_object, SLOT(launch()));
|
||||
|
||||
app.exec();
|
||||
|
||||
delete test_object;
|
||||
delete root_dp;
|
||||
}
|
||||
};
|
||||
|
||||
#endif //TESTDISPATCHER_H
|
Loading…
Add table
Add a link
Reference in a new issue