Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "mitkInteractor.h"
00020 #include "mitkEvent.h"
00021 #include "mitkStateEvent.h"
00022 #include "mitkInteractionConst.h"
00023 #include "mitkGlobalInteraction.h"
00024 #include "mitkTestingMacros.h"
00025
00026 #include <iostream>
00027
00028
00029 int mitkInteractorTest(int , char* [])
00030 {
00031 MITK_TEST_BEGIN("Interactor")
00032
00033
00034 mitk::GlobalInteraction::GetInstance()->Initialize("global");
00035
00036
00037 mitk::Interactor::Pointer interactor = mitk::Interactor::New("InteractorTestPattern", NULL);
00038
00039
00040 std::cout << "Testing to initialize the interactor";
00041 MITK_TEST_CONDITION_REQUIRED(interactor.IsNotNull(),"Testing to initialize the interactor")
00042
00043 std::cout<<"The pattern of the interactor is called: "<<interactor->GetType()<<std::endl;
00044
00045
00046
00047
00048 mitk::Event *event = new mitk::Event(NULL, mitk::Type_MouseButtonPress, mitk::BS_MidButton, mitk::BS_NoButton, mitk::Key_none);
00049 mitk::StateEvent *stateEvent = new mitk::StateEvent(4, event);
00050 MITK_TEST_CONDITION_REQUIRED(interactor->HandleEvent(stateEvent),"Testing to send an event to go from State 0 to State 1")
00051
00052 MITK_TEST_CONDITION_REQUIRED(interactor->GetMode() == mitk::Interactor::SMSELECTED,"Testing right Mode and thus right action behavior")
00053
00054
00055 delete event;
00056
00057
00058
00059
00060 event = new mitk::Event(NULL, mitk::Type_MouseMove, mitk::BS_NoButton, mitk::BS_MidButton, mitk::Key_none);
00061 stateEvent->Set(533, event);
00062 MITK_TEST_CONDITION_REQUIRED(interactor->HandleEvent(stateEvent),"Staying in State 1")
00063
00064 MITK_TEST_CONDITION_REQUIRED(interactor->GetMode() == mitk::Interactor::SMSELECTED,"Testing for the same Mode")
00065 delete event;
00066
00067
00068
00069
00070 event = new mitk::Event(NULL, mitk::Type_MouseButtonRelease, mitk::BS_MidButton, mitk::BS_MidButton, mitk::Key_none);
00071 stateEvent->Set(506, event);
00072
00073 float returnvalue = interactor->CanHandleEvent(stateEvent);
00074 MITK_TEST_CONDITION_REQUIRED(returnvalue == 0.5,"Testing to call CanHandleEvent with next event")
00075 std::cout<<"CanHandleEvent returned: "<<returnvalue<<std::endl;
00076
00077
00078 MITK_TEST_CONDITION_REQUIRED(interactor->HandleEvent(stateEvent),"Testing to send next event leading back to startState0")
00079
00080 MITK_TEST_CONDITION_REQUIRED(interactor->GetMode() == mitk::Interactor::SMDESELECTED,"Testing right Mode and thus right action behavior")
00081 delete event;
00082
00083
00084 event = NULL;
00085 stateEvent->Set(4, event);
00086 MITK_TEST_CONDITION_REQUIRED(interactor->HandleEvent(stateEvent),"Testing to send event == NULL to interactor")
00087 delete stateEvent;
00088 stateEvent = NULL;
00089 MITK_TEST_CONDITION_REQUIRED( ! interactor->HandleEvent(stateEvent),"Testing to send stateEvent == NULL to interactor")
00090
00091 MITK_TEST_END()
00092 }