moved event handling into Modules instead of having seperate event listener objects
This commit is contained in:
@@ -9,7 +9,7 @@ SET ( TESTS_SRCS
|
||||
main.cc
|
||||
CommandsTests.cc
|
||||
EntityTests.cc
|
||||
EventsBaseTests.cc
|
||||
EventBaseTests.cc
|
||||
PhysicsTests.cc
|
||||
ControllerBaseTests.cc
|
||||
)
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#include <UnitTest++.h>
|
||||
|
||||
#include "Logging.h"
|
||||
#include "EventsBase.h"
|
||||
#include "Module.h"
|
||||
#include "EventManager.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace Engine;
|
||||
@@ -9,18 +10,21 @@ using namespace Engine;
|
||||
int global_event_type = -1;
|
||||
string global_event_string = "";
|
||||
|
||||
class TestEventListener : public EventListenerBase {
|
||||
public:
|
||||
TestEventListener() {
|
||||
mName = "TestEventListener";
|
||||
}
|
||||
struct EventsFixture;
|
||||
|
||||
virtual bool HandleEvent (const EventBasePtr &event) const {
|
||||
class TestEventModule : public Module {
|
||||
private:
|
||||
virtual int OnInit (int argc, char* argv[]) {
|
||||
return 0;
|
||||
};
|
||||
virtual bool OnReceiveEvent (const EventBasePtr &event) {
|
||||
global_event_type = event->mEventType;
|
||||
global_event_string = event->mEventData;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
friend class EventsFixture;
|
||||
};
|
||||
|
||||
struct EventsFixture {
|
||||
@@ -43,17 +47,17 @@ struct EventsFixture {
|
||||
|
||||
Logging LoggingModule;
|
||||
|
||||
TestEventListener Listener;
|
||||
TestEventModule TestModule;
|
||||
EventManager *TestEventManager;
|
||||
};
|
||||
|
||||
TEST_FIXTURE ( EventsFixture, TestEventListenerHandleEvent ) {
|
||||
TEST_FIXTURE ( EventsFixture, TestEventModuleSendEvent ) {
|
||||
EventBasePtr event (new EventBase);
|
||||
|
||||
event->mEventType = 1;
|
||||
event->mEventData = "test";
|
||||
|
||||
Listener.HandleEvent (event);
|
||||
TestModule.SendEvent (event);
|
||||
|
||||
CHECK_EQUAL (1, global_event_type);
|
||||
CHECK_EQUAL ("test", global_event_string);
|
||||
@@ -65,17 +69,17 @@ TEST_FIXTURE ( EventsFixture, TestTestEventManagerZeroListeners ) {
|
||||
}
|
||||
|
||||
TEST_FIXTURE ( EventsFixture, TestTestEventManagerAddListener ) {
|
||||
TestEventManager->RegisterListener (&Listener, 1);
|
||||
TestEventManager->RegisterListener (&TestModule, 1);
|
||||
|
||||
CHECK_EQUAL (true, TestEventManager->HasEventTypeListener(1));
|
||||
CHECK_EQUAL (false, TestEventManager->HasEventTypeListener(2));
|
||||
|
||||
TestEventManager->RegisterListener (&Listener, 1);
|
||||
TestEventManager->RegisterListener (&TestModule, 1);
|
||||
CHECK_EQUAL (2, TestEventManager->GetEventTypeListenerCount(1));
|
||||
}
|
||||
|
||||
TEST_FIXTURE ( EventsFixture, TestTestEventManagerTriggerEvent ) {
|
||||
TestEventManager->RegisterListener (&Listener, 1);
|
||||
TestEventManager->RegisterListener (&TestModule, 1);
|
||||
|
||||
CHECK_EQUAL (true, TestEventManager->HasEventTypeListener(1));
|
||||
|
||||
@@ -94,7 +98,7 @@ TEST_FIXTURE ( EventsFixture, TestTestEventManagerTriggerEvent ) {
|
||||
}
|
||||
|
||||
TEST_FIXTURE ( EventsFixture, TestTestEventManagerQueueEvent ) {
|
||||
TestEventManager->RegisterListener (&Listener, 1);
|
||||
TestEventManager->RegisterListener (&TestModule, 1);
|
||||
|
||||
EventBasePtr event (new EventBase);
|
||||
|
||||
@@ -111,7 +115,7 @@ TEST_FIXTURE ( EventsFixture, TestTestEventManagerQueueEvent ) {
|
||||
}
|
||||
|
||||
TEST_FIXTURE ( EventsFixture, TestTestEventManagerProcess ) {
|
||||
TestEventManager->RegisterListener (&Listener, 1);
|
||||
TestEventManager->RegisterListener (&TestModule, 1);
|
||||
|
||||
EventBasePtr event (new EventBase);
|
||||
|
||||
Reference in New Issue
Block a user