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 <mitkEvent.h>
00020 #include <mitkInteractionConst.h>
00021 #include <mitkStateEvent.h>
00022
00023 #include <mitkStateMachine.h>
00024 #include <mitkTestingMacros.h>
00025 #include <mitkGlobalInteraction.h>
00026
00035 int mitkStateMachineTest(int , char* [])
00036 {
00037
00038 MITK_TEST_BEGIN("StateMachine")
00039
00040 std::string name("global");
00041
00042
00043 std::cout<<"should throw fatal error:\n";
00044 mitk::StateMachine::Pointer noMachine1 = mitk::StateMachine::New("");
00045
00046 std::cout<<"should throw fatal error:\n";
00047
00048 mitk::StateMachine::Pointer noMachine2 = mitk::StateMachine::New(name.c_str());
00049
00050 std::cout<<"should throw fatal error:\n";
00051
00052 MITK_TEST_CONDITION_REQUIRED(mitk::GlobalInteraction::GetInstance()->Initialize("")==false,"Testing wrong initialization")
00053
00054 MITK_TEST_CONDITION_REQUIRED(mitk::GlobalInteraction::GetInstance()->Initialize("raraolala")==false,"Testing initialization with wrong pattern name")
00055
00056 std::cout<<"should throw fatal error:\n";
00057 mitk::StateMachine::Pointer noMachine3 = mitk::StateMachine::New(name.c_str());
00058
00059
00060
00061 std::cout<<"no errors / warnings anymore!\n";
00062
00063 MITK_TEST_CONDITION_REQUIRED(mitk::GlobalInteraction::GetInstance()->Initialize(name.c_str())==true,"Testing wright initialization")
00064
00065
00066 mitk::StateMachine::Pointer myStateMachine = mitk::StateMachine::New(name.c_str());
00067
00068
00069
00070
00071 MITK_TEST_CONDITION_REQUIRED(myStateMachine.IsNotNull(),"Testing instantiation")
00072
00073 MITK_TEST_CONDITION_REQUIRED(myStateMachine->GetType() == name ,"Testing GetType")
00074
00075
00076
00077 mitk::Event *event = new mitk::Event(NULL, mitk::Type_None, mitk::Type_None, mitk::BS_NoButton, mitk::Key_none);
00078 mitk::StateEvent *stateEvent = new mitk::StateEvent(1013, event);
00079 MITK_TEST_CONDITION_REQUIRED(myStateMachine->HandleEvent(stateEvent) ,"Testing HandleEvent by statechange")
00080
00081
00082 mitk::StateEvent *nextStateEvent = new mitk::StateEvent(1002, event);
00083 MITK_TEST_CONDITION_REQUIRED(myStateMachine->HandleEvent(nextStateEvent) ,"Testing HandleEvent returning to startstate")
00084
00085 myStateMachine = NULL;
00086 MITK_TEST_CONDITION_REQUIRED(myStateMachine.IsNull(),"Testing setting pointer to NULL")
00087
00088
00089 delete event;
00090 delete stateEvent;
00091 delete nextStateEvent;
00092
00093
00094 MITK_TEST_END()
00095 }