00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
#include "TestCaseFromFsmEvent_1.h"
00011
#include "../GeneralInclude/CompilerSwitches.h"
00012
#include "../GeneralInclude/ClassId.h"
00013
#include "../GeneralInclude/BasicTypes.h"
00014
#include "../GeneralInclude/Constants.h"
00015
#include "../FSM/CC_FSM.h"
00016
#include "../FSM/DC_DummyFsmState.h"
00017
#include "../FSM/DC_FromFsmEvent.h"
00018
00019 TestCaseFromFsmEvent_1::TestCaseFromFsmEvent_1(
void) :
00020
TestCaseGenericSetUp(ID_FROMFSMEVENT*10+1,"
TestCaseFromFsmEvent_1") {
00021
return;
00022 }
00023
00024 void TestCaseFromFsmEvent_1::runTestCase(
void) {
00025
00026
CC_FSM* pFsm =
new CC_FSM();
00027
00028
00029 pFsm->
setNumberOfStates(4);
00030
00031
DC_DummyFsmState* pState[4];
00032
for (
TD_FsmStateIndex i=0; i<pFsm->
getNumberOfStates(); i++)
00033 pState[i] =
new DC_DummyFsmState();
00034
00035
for (
TD_FsmStateIndex i=0; i<pFsm->
getNumberOfStates(); i++)
00036 pFsm->
setState(i,pState[i]);
00037
00038 pFsm->
reset();
00039
00040
00041
if ( (pFsm->
isObjectConfigured() ==
NOT_CONFIGURED) )
00042 { setTestResult(
TEST_FAILURE,
00043
"Wrong FSM configuration status after configuration was completed");
00044
return;
00045 }
00046
00047
00048
DC_FromFsmEvent* pFsmEvt_1 =
new DC_FromFsmEvent();
00049
00050
00051
if ( (pFsmEvt_1->
getClassId() != ID_FROMFSMEVENT) )
00052 { setTestResult(
TEST_FAILURE,
"Wrong class identifier");
00053
return;
00054 }
00055
00056
00057
if ( (pFsmEvt_1->
isObjectConfigured() ==
CONFIGURED) )
00058 { setTestResult(
TEST_FAILURE,
"Wrong configuration status");
00059
return;
00060 }
00061
00062
00063
00064
TD_FsmStateIndex evtStartingState = 2;
00065
TD_FsmStateIndex evtTargetState = 3;
00066 pFsmEvt_1->
setTargetFsm(pFsm);
00067 pFsmEvt_1->
setTargetState(evtTargetState);
00068 pFsmEvt_1->
setStartingState(evtStartingState);
00069
if ( pFsmEvt_1->
getStartingState() != evtStartingState )
00070 { setTestResult(
TEST_FAILURE,
"Wrong starting state");
00071
return;
00072 }
00073
00074
00075
if ( (pFsmEvt_1->
isObjectConfigured() !=
CONFIGURED) )
00076 { setTestResult(
TEST_FAILURE,
"Wrong configuration status");
00077
return;
00078 }
00079
00080
00081
TD_FsmStateIndex fsmState_1 = 1;
00082 pFsm->
makeTransitionRequest(fsmState_1);
00083 pFsm->
activate();
00084
if ( pFsmEvt_1->
execute() != ACTION_FAILURE )
00085 { setTestResult(
TEST_FAILURE,
"Wrong execution return value");
00086
return;
00087 }
00088 pFsm->
activate();
00089
if ( pFsm->
getCurrentState() != fsmState_1 )
00090 { setTestResult(
TEST_FAILURE,
"Wrong FSM state");
00091
return;
00092 }
00093
00094
00095
TD_FsmStateIndex fsmState_2 = evtStartingState;
00096 pFsm->
makeTransitionRequest(fsmState_2);
00097 pFsm->
activate();
00098
if ( pFsmEvt_1->
execute() != ACTION_SUCCESS )
00099 { setTestResult(
TEST_FAILURE,
"Wrong execution return value");
00100
return;
00101 }
00102 pFsm->
activate();
00103
if ( pFsm->
getCurrentState() != evtTargetState )
00104 { setTestResult(
TEST_FAILURE,
"Wrong FSM state");
00105
return;
00106 }
00107
00108 setTestResult(
TEST_SUCCESS,
"Test Successful");
00109
return;
00110 }