/** * @author ETSI / STF517 * @version $URL$ * $Id$ * @desc MAPEM Testcases (TP version: 0.0.1) * */ module ItsMapem_TestCases { // LibItsMapemSpatem import from LibItsMapemSpatem_TestSystem all; // ItsMapemSpatem import from ItsMapem_TpFunctions all; group mapeMessageDissemination { group mapeMessageFormat { /** * @desc Check that protocolVersion is set to 1 and messageID is set to 4 *
* Pics Selection: PICS_MAPEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* }
* Expected behaviour:
* ensure that {
* when {
* a MAPEM is generated
* }
* then {
* the IUT sends a valid MAPEM
* containing ITS PDU header
* containing protocolVersion
* indicating value '1'
* and containing messageID
* indicating value '5'
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_MSGF_BV_01
* @reference ETSI TS 103 301 V1.0.4 Clause 6.3
*/
testcase TC_IS_RLT_MSGF_BV_01 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_MSGF_BV_01();
} // End of testcase TC_IS_RLT_MSGF_BV_01
} // End of group mapeMessageFormat
group mapeEventGeneration {
/**
* @desc Check that IVI Service generates a new MAPEM on reception of a valid AppMAPEM_Trigger request
*
* Pics Selection: PICS_MAPEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* }
* Expected behaviour:
* ensure that {
* when {
* a MAPEM is generated
* }
* then {
* the IUT sends a valid MAPEM
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_EVGN_BV_01
* @reference ETSI TS 103 301 V1.0.4 Clause 6.4.1
*/
testcase TC_IS_RLT_EVGN_BV_01 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_EVGN_BV_01();
} // End of testcase TC_IS_RLT_EVGN_BV_01
/**
* @desc Check that IVI Service generates a new MAPEM on reception of a valid AppMAPEM_Trigger request
*
* Pics Selection: PICS_MAPEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* containing map
* not containing LayerType
* and not containing LayerID
* and containing restrictionList
* indicating the value RL_1
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT is alerted about a new restrictionList indicating the value RL_2
* }
* then {
* the IUT sends a valid MAPEM
* containing map
* not containing LayerType
* and not containing LayerID
* and containing restrictionList
* indicating indicating the value R_2
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_EVGN_BV_02
* @reference ETSI TS 103 301 V1.0.4 Clause 6.4.1
*/
testcase TC_IS_RLT_EVGN_BV_02 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_EVGN_BV_02();
} // End of testcase TC_IS_RLT_EVGN_BV_02
} // End of group mapeEventGeneration
group mapeCommunication {
/**
* @desc Check that the RLT Service transmits continuously both MAPEM and SPATEM
*
* Pics Selection: PICS_MAPEM_GENERATION and PICS_SPATEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* and the IUT has not sent any SPATEM yet
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT receives an AppSPATEM_Start request from the application layer
* }
* then {
* the IUT sends a valid SPATEM
* and the IUT sends a valid MAPEM
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_COMM_BV_01
* @reference ETSI TS 103 301 V1.0.4 Clause 6.4.3.1
*/
testcase TC_IS_RLT_COMM_BV_01 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_COMM_BV_01();
} // End of testcase TC_IS_RLT_COMM_BV_01
/**
* @desc Check that MAPEM uses BTP_B packet
*
* Pics Selection: PICS_MAPEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* }
* Expected behaviour:
* ensure that {
* when {
* a MAPEM is generated
* }
* then {
* the IUT sends a valid MAPEM
* encapsulated in a BTP-B packet
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_COMM_BV_02_01
* @reference ETSI TS 103 301 V1.0.4 Clause 6.4.3.2
*/
testcase TC_IS_RLT_COMM_BV_02_01 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_COMM_BV_02_01();
} // End of testcase TC_IS_RLT_COMM_BV_02_01
/**
* @desc Check that the destination port for MAPEM is set to 2003
*
* Pics Selection: PICS_MAPEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* }
* Expected behaviour:
* ensure that {
* when {
* a MAPEM is generated
* }
* then {
* the IUT sends a valid MAPEM
* encapsulated in a BTP packet
* containing a destination port value set to 2003
* and containing a destination port info value set to 0
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_COMM_BV_02_02
* @reference ETSI TS 103 301 V1.0.4 Clause 6.4.3.2
*/
testcase TC_IS_RLT_COMM_BV_02_02 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_COMM_BV_02_02();
} // End of testcase TC_IS_RLT_COMM_BV_02_02
/**
* @desc Check that TLM service encapsulates MAPEM in a GBC with the HeaderType field set to the value of 4
*
* Pics Selection: PICS_MAPEM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending MAPEM
* }
* Expected behaviour:
* ensure that {
* when {
* a MAPEM is generated
* }
* then {
* the IUT sends a valid MAPEM
* encapsulated in a GBC packet
* containing a correctly formatted Common Header
* containing HeaderType field
* indicating the value '4'
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_COMM_BV_03
* @reference ETSI TS 103 301 V1.0.4 Clause 6.4.3.1
*/
testcase TC_IS_RLT_COMM_BV_03 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_COMM_BV_03();
} // End of testcase TC_IS_RLT_COMM_BV_03
} // End of group mapeCommunication
} // End of group mapeMessageDissemination
group mapeMessageProcessing {
/**
* @desc Check that the IUT can successfully process all mandatory fields of MAPEM received
*
* Pics Selection: not PICS_MAPEM_RECEPTION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT having receive a valid MAPEM
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT receives a valid MAPEM
* }
* then {
* the IUT forwards the MAPEM content to upper layers
* and the IUT forwards the MAPEM content to other facilities
* }
* }
*
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_RLT_MSGF_BV_02
* @reference ETSI TS 103 301 V1.0.4 Clause 6.3
*/
testcase TC_IS_RLT_MSGF_BV_02 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
f_IS_RLT_MSGF_BV_02();
} // End of testcase TC_IS_RLT_MSGF_BV_02
} // End of group mapeMessageProcessing
// group MapemSpatemMessageDissemination {
//
// /**
// * @desc Verify that when sending a MapData message the DSRCmsgSubID is set to value 1.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a MapData message is generated
// * }
// * then {
// * the IUT sends a valid MapData message
// * containing DSRCmsgSubID
// * set to value 1
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 v0.0.1 TP/MAPEM-SPATEM/MSD/BV-01
// * @reference ETSI TS 103 301 V1.0.4 Clause 7.34
// */
// testcase TC_IS_RLT_MSD_BV_01 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_mapSubId1 ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received MAPEM with DSRCmsgSubID == 1. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-01
//
// /**
// * @desc Verify that when sending a SPATEM the DSRCmsgSubID is set to value 1.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a SPATEM is generated
// * }
// * then {
// * the IUT sends a valid SPATEM message
// * containing DSRCmsgSubID
// * set to value 1
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-02
// * @reference ETSI TS 103 301 V1.0.4 Clause 7.34
// */
// testcase TC_IS_RLT_MSD_BV_02 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// // Triggering a SPATEM message
// f_utTriggerEvent ( m_utTriggerEvent ( spateMsg ) );
//
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_spatemInd ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_spatSubId1 ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received SPATEM with DSRCmsgSubID == 1. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_spatemInd ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_defaultSpatem ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-02
//
// /**
// * @desc Repetition < 10s. Verify that: when the IUT is composing a new message with the same content as the most recent message
// * with the same DSRCmsgID, and less than 10 seconds have elapsed since it sent the previous message, the IUT uses the same MsgCount value.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * and the IUT has sent a MapData message
// * containing MsgCount
// * set to VALUE_1
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a new MapData message with the same content is generated
// * and the repetition time is lesser than 10 s
// * }
// * then {
// * the IUT sends a valid MapData message
// * containing MsgCount
// * set to VALUE_1
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-05
// * @reference ETSI TS 103 301 V1.0.4 Clause 7.92
// */
// testcase TC_IS_RLT_MSD_BV_05 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var MsgCount v_msgCount;
// var MapemInd v_message;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// // Triggering MAPEM repetition lesser than 10s
// v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( mapRepL10s ) );
// // Receiving first MAPEM message
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) -> value v_message {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received first MAPEM message. ***");
// v_msgCount := v_message.msgIn.msgMapem.map_.msgIssueRevision;
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_prDone, e_timeout);
// }
// }
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// // Receiving repetition MAPEM before 10s
// tc_ac.start (10.0);
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) -> value v_message {
// tc_ac.stop;
// if ( v_message.msgIn.msgMapem.map_.msgIssueRevision == v_msgCount ) {
// log("*** " & testcasename() & ": PASS: Successfully received Second MAPEM with correct Count. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// else {
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-05
//
// /**
// * @desc Repetition >= 10s Verify that: when the IUT is composing a new message with the same content as the most recent message
// * with the same DSRCmsgID, and at least 10 seconds have elapsed since it sent the previous message, the IUT sets the MsgCount to any valid value.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * and the IUT has sent a MapData message
// * containing MsgCount
// * set to VALUE_1
//}
// * Expected behaviour:
// * ensure that {
// * when {
// * a new MapData message with the same content is generated
// * and the repetition time is greather or egal than 10 s
// * }
// * then {
// * the IUT sends a valid MapData message
// * containing MsgCount
// * set to any valid value
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-06
// * @reference ETSI TS 103 301 V1.0.4 Clause 7.92
// */
// testcase TC_IS_RLT_MSD_BV_06 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var MsgCount v_msgCount;
// var MapemInd v_message;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// // Triggering MAPEM repetition greather than 10s
// v_msgCount := f_utTriggerEvent ( m_utTriggerEvent ( mapRepG10s ) );
// // Receiving first MAPEM message
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) -> value v_message {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received first MAPEM message. ***");
// v_msgCount := v_message.msgIn.msgMapem.map_.msgIssueRevision;
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_prDone, e_timeout);
// }
// }
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// // Receiving repetition MAPEM after 10s
// tc_ac.start (20.0);
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) -> value v_message {
// tc_ac.stop;
// if ( v_message.msgIn.msgMapem.map_.msgIssueRevision != v_msgCount ) {
// log("*** " & testcasename() & ": PASS: Successfully received Second MAPEM with correct Count. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// else {
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-06
//
// /**
// * @desc Verify that the MsgCRC (if present) is the last data element of the MapData message.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a MapData message is generated
// * }
// * then {
// * the IUT sends a valid MapData message
// * not containing MsgCRC
// * or
// * containing MsgCRC
// * as the last data element of the message
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-08
// * @reference ETSI TS 103 301 V1.0.4 Clause 7.93
// */
// testcase TC_IS_RLT_MSD_BV_08 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_mapNoMsgCrc ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received MAPEM with no MsgCRC. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_mapMsgCrcLast ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received MAPEM with MsgCRC as the last data element of the message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-08
//
// /**
// * @desc Verify that the LayerType is not contained in the MapData message.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a MapData message is generated
// * }
// * then {
// * the IUT sends a valid MapData message
// * not containing LayerType
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-09
// * @reference ETSI TS 103 301 V1.0.4 Clause 7.83
// */
// testcase TC_IS_RLT_MSD_BV_09 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_mapNoLayerType ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received MAPEM with no LayerType. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-09
//
// /**
// * @desc Verify that the IntersectionReferenceID contained in the SPATEM correspond to a previously received intersection MAPEM.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * and the IUT has sent a MapData message
// * containing IntersectionList
// * containing INTERSECTION_1
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a SPATEM is generated
// * }
// * then {
// * the IUT sends a valid SPATEM message
// * containing IntersectionReferenceID
// * corresponding to INTERSECTION_1
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-10
// * @reference ETSI TS 103 301 V1.0.4 Clause 6.29
// */
// testcase TC_IS_RLT_MSD_BV_10 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var MapemInd v_message;
// var SpatemInd v_spat;
// var IntersectionGeometryList v_intersections;
// var integer i,j;
// var boolean v_result := false;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// // Receiving MAPEM - Saving IntersectionList
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) -> value v_message {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received MAPEM message. ***");
// v_intersections := v_message.msgIn.msgMapem.map_.intersections;
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_prDone, e_timeout);
// }
// }
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// f_utTriggerEvent ( m_utTriggerEvent ( spateMsg ) );
//
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_spatemInd ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_defaultSpatem ) ) ) -> value v_spat {
// tc_ac.stop;
// log("*** " & testcasename() & ": Successfully received SPATEM message. ***");
// for ( i := 0 ; i < lengthof ( v_intersections ) and not v_result ; i := i+1 ) {
// for ( j := 0 ; j < lengthof ( v_spat.msgIn.msgSpatem.spat.intersections ) ; j := j+1 ) {
// if ( v_intersections[ i ].id == v_spat.msgIn.msgSpatem.spat.intersections[ j ].id ) {
// v_result := true;
// }
// }
// }
// if ( v_result ) {
// log("*** " & testcasename() & ": PASS: concordance of intersection ID. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// else {
// log("*** " & testcasename() & ": FAIL: non concordance of intersection ID. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-10
//
// /**
// * @desc Verify that the MapData message is well formatted.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a MapData message is generated
// * }
// * then {
// * the IUT sends a valid MapData message
// * containing DSRCmsgSubID
// * set to value 1
// * containing MsgCount
// * not containing LayerType
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-11
// * @reference ETSI TS 103 301 V1.0.4 Clause 10
// */
// testcase TC_IS_RLT_MSD_BV_11 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_mapWellFormatted ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received a well formatted MAPEM. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-11
//
// /**
// * @desc Verify that the SPATEM is well formatted.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a SPATEM is generated
// * }
// * then {
// * the IUT sends a valid SPATEM message
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-12
// * @reference ETSI TS 103 301 V1.0.4 Clause 10
// */
// testcase TC_IS_RLT_MSD_BV_12 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// // Triggering a SPATEM message
// f_utTriggerEvent ( m_utTriggerEvent ( spateMsg ) );
//
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_spatemInd ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_spatSubId1 ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received SPATEM with DSRCmsgSubID == 1. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_spatemInd ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_defaultSpatem ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-12
//
// /**
// * @desc Verify that when sending a MapData message, the IUT encapsulates the message into a GN SHB message.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a MapData message is generated
// * }
// * then {
// * the IUT sends a valid MapData message encapsulated into a GN SHB message
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-15
// * @reference No clause – Implicit to use in ITS
// */
// testcase TC_IS_RLT_MSD_BV_15 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var MapemInd v_message;
// const UInt8 c_gnHtTsb := 5;
// const UInt8 c_gnHstShb := 0;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_mapemIndWithGnParameters ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_mapWellFormatted ), -, c_gnHtTsb, c_gnHstShb ) ) -> value v_message {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received MAPEM. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_mapemInd ( mw_mapemPdu ( mw_itsPduHeaderMapem , mw_anyMap ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-15
//
// /**
// * @desc Verify that when sending a SPATEM message, the IUT encapsulates the message into a GN SHB message.
// *
// * Pics Selection: PICS_RSU
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * a SPATEM is generated
// * }
// * then {
// * the IUT sends a valid SPATEM encapsulated into a GN SHB message
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSD//BV-16
// * @reference No clause – Implicit to use in ITS
// */
// testcase TC_IS_RLT_MSD_BV_16 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var SpatemInd v_message;
// const UInt8 c_gnHtTsb := 5;
// const UInt8 c_gnHstShb := 0;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// f_utTriggerEvent ( m_utTriggerEvent ( spateMsg ) );
//
// tc_ac.start;
// alt {
// [] mapemSpatemPort.receive ( mw_spatemIndWithGnParameters ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_spatSubId1 ), -, c_gnHtTsb, c_gnHstShb ) ) -> value v_message {
// tc_ac.stop;
// log("*** " & testcasename() & ": PASS: Successfully received SPATEM. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// [] mapemSpatemPort.receive ( mw_spatemInd ( mw_spatemPdu ( mw_itsPduHeaderSpatem , mw_defaultSpatem ) ) ) {
// tc_ac.stop;
// log("*** " & testcasename() & ": FAIL: Received an incorrect MAPEM message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
// [] tc_ac.timeout {
// log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
// }
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSD_BV-16
//
// } // End of group MapemSpatemMessageDissemination
//
// group MapemSpatemMessageProcessing {
//
// /**
// * @desc Verify that: when the IUT receives a GN SHB message encapsulating a MapData message, it pass the message to the application layer.
// *
// * Pics Selection: PICS_VEHICLE
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * the IUT receives a valid MapData message encapsulated into a GN SHB message
// * }
// * then {
// * the IUT forwards the MapData message content to upper layers
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSP//BV-01
// * @reference No clause – Implicit to use in ITS
// */
// testcase TC_IS_RLT_MSP_BV_01 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var MapReq v_mapReq;
// var integer i;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// v_mapReq := valueof ( m_mapemReq ( m_mapemPdu ( m_map ) ) );
// mapemSpatemPort.send( v_mapReq ) ;
//
// f_sleep(PX_TAC);
// for ( i:=0 ; i < lengthof ( vc_utMapEvents ) and not match ( v_mapReq.msgOut, vc_utMapEvents[i].mapeMsg ) ; i := i+1 ) {
// // empty on purpose
// }
// if ( i < lengthof ( vc_utMapEvents ) ) {
// log("*** " & testcasename() & ": PASS: MAPEM was transmitted to upper layer ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// else {
// log("*** " & testcasename() & ": FAIL: MAPEM was not transmitted to upper layer ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSP_BV_01
//
// /**
// * @desc Verify that: when the IUT receives a GN SHB message encapsulating a SPATEM message, it pass the message to the application layer.
// *
// * Pics Selection: PICS_VEHICLE
// * Initial conditions:
// * with {
// * the IUT being in the "initial state"
// * }
// * Expected behaviour:
// * ensure that {
// * when {
// * the IUT receives a valid SPATEM encapsulated into a GN SHB message
// * }
// * then {
// * the IUT forwards the SPATEM content to upper layers
// * }
// * }
// *
// *
// * @version 0.0.1
// * @see ETSI TS 103 191-2 V0.0.1 TP/MAPEM-SPATEM/MSP//BV-02
// * @reference No clause – Implicit to use in ITS
// */
// testcase TC_IS_RLT_MSP_BV_02 () runs on ItsMapemSpatem system ItsMapemSpatemSystem {
//
// // Local variables
// var SpatemReq v_spatReq;
// var integer i;
//
// // Test component configuration
// f_cfUp();
//
// // Preamble
// f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
//
// // Test Body
// v_spatReq := valueof ( m_spatemReq ( m_spatemPdu ( m_spat ) ) );
// mapemSpatemPort.send ( v_spatReq ) ;
//
// f_sleep(PX_TAC);
// for ( i:=0 ; i < lengthof ( vc_utSpatemEvents ) and not match ( v_spatReq.msgOut , vc_utSpatemEvents[i].spateMsg ) ; i:=i+1 ) {
// // empty on purpose
// }
// if ( i < lengthof ( vc_utSpatemEvents ) ) {
// log("*** " & testcasename() & ": PASS: SPATEM was transmitted to upper layer ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
// }
// else {
// log("*** " & testcasename() & ": FAIL: SPATEM was not transmitted to upper layer ***");
// f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
// }
//
// // Postamble
// f_poDefault();
// f_cfDown();
//
// } // End of testcase TC_IS_RLT_MSP_BV_02
//
// } // End of group MapemSpatemMessageProcessing
//
} // End of module ItsMapem_TestCases