test_LibItsGeoNetworking_TypesAndValues.ttcn 155 KB
Newer Older
                var GeoNetworkingPacket v_geoNetworkingPacket;
                var octetstring v_gnPayload, v_encMsg;
                var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_);
                var octetstring v_buffer := '01002B0A2041800000390A000D800000A832A40102030405000011E90000007E0000007B002D007D00048D8800007FE904D2162E23A300000000000001010001B207C0000D903800000000006072000000188593E91B2B9BDF918BC00400400000C35000C16C0010E0000800018CE00000FFFFFFFFFFFF'O; 
                var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessage;
                var template (value) SecuredMessage v_securedMessageBeacon;
                
                if (PX_GN_UPPER_LAYER != e_btpB) {
                    log("PX_GN_UPPER_LAYER shall be set to e_btpB");
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                // Build signed SecuredMessage
                v_gnNonSecuredPacket := m_geoNwBroadcastPacket(
                    m_dummyLongPosVectorNodeB, 
                    3456, 
                    m_dummyGeoBroadcastArea1
                );
                log("v_gnNonSecuredPacket= ", v_gnNonSecuredPacket);
                // Add DENM payload
                v_gnNonSecuredPacket.payload := f_adaptPayload_m(
                    bit2oct(
                        encvalue(
                            m_denmReq(
                                m_denmPdu(
                                    m_denm(
                                        m_denmMgmtCon(
                                            m_tsActionId
                                        ),
                                        v_situation,
                                        m_denmLocation_zeroDelta
                                    )
                               )
                           )
                        )
                    )
                );
                log("v_gnNonSecuredPacket.payload= ", v_gnNonSecuredPacket.payload);
                // Encode it
                v_gnPayload := bit2oct( 
                    encvalue(
                        v_gnNonSecuredPacket
                    )
                );
                log("v_gnPayload= ", v_gnPayload);
                f_buildGnSecuredDenm(
                    v_securedMessageBeacon,
                    m_payload_signed(v_gnPayload),
                    e_certificate_digest_with_sha256,
                    m_threeDLocation(
                        1234,
                        5678,
                        '002F'O
                    )
                );
                log("v_securedMessageBeacon= ", v_securedMessageBeacon);
                
                // Build secured Gn packet
                v_gnReq := m_geoNwReq_linkLayerBroadcast(
                    m_geoNwSecPdu(
                        v_gnNonSecuredPacket,
                        v_securedMessageBeacon
                    ) // End of template m_geoNwSecPdu
                ); // End of template m_geoNwReq_linkLayerBroadcast
                
                // Encode it
                v_encMsg := bit2oct(encvalue(v_gnReq));
                log("v_encMsg= ", v_encMsg);
                if (not isbound(v_encMsg)) {
                    setverdict(fail, "Encoding failed!");
                    stop;
                }
                setverdict(pass, "Encoding passed.");
                // Decode it
                v_gnReq.msgOut.gnPacket.packet.commonHeader.plLength := 60;
                test_decodePDU<GeoNetworkingReq>(
                    v_gnReq, 
                    v_encMsg
                );
                log("v_gnReq: ", v_gnReq);
                
                if (decvalue(oct2bit(v_encMsg), v_gnReq) == 0) {
                    if (f_verifyGnSecuredMessageSignatureWithCertificate(v_gnReq.msgOut.gnPacket.securedMsg, vc_atCertificate) == true) {
                        setverdict(pass, "Signature check succeed.");
                    } else {
                        setverdict(fail, "Signature check failed.");
                    } 
                } else {
                    setverdict(fail, "Decoding failed.");
                }
            
            /**
             * @desc validate secured dcertificate GeoNetworkingReq/Broadcast with DENM payload
             * @verdict Pass on success, Fail otherwise
             */
            testcase tc_GeoNetReq_SecuredCertificateBroadcastPacketWithBtpDenm() runs on TCType system TCType {
                var GeoNetworkingReq v_gnReq;
                var GnNonSecuredPacket v_gnNonSecuredPacket;
                var GeoNetworkingPacket v_geoNetworkingPacket;
                var octetstring v_gnPayload, v_encMsg;
                var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_);
                var template (value) ToBeSignedSecuredMessage v_toBeSignedSecuredMessage;
                var template (value) SecuredMessage v_securedMessageBeacon;
                
                if (PX_GN_UPPER_LAYER != e_btpB) {
                    log("PX_GN_UPPER_LAYER shall be set to e_btpB");
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                // Build signed SecuredMessage
                v_gnNonSecuredPacket := m_geoNwBroadcastPacket(
                    m_dummyLongPosVectorNodeB, 
                    3456, 
                    m_dummyGeoBroadcastArea1
                );
                log("v_gnNonSecuredPacket= ", v_gnNonSecuredPacket);
                // Add CAM payload
                v_gnNonSecuredPacket.payload := f_adaptPayload_m(
                    bit2oct(
                        encvalue(
                            m_denmReq(
                                m_denmPdu(
                                    m_denm(
                                        m_denmMgmtCon(
                                            m_tsActionId
                                        ),
                                        v_situation,
                                        m_denmLocation_zeroDelta
                                    )
                               )
                           )
                        )
                    )
                );
                log("v_gnNonSecuredPacket.payload= ", v_gnNonSecuredPacket.payload);
                // Encode it
                v_gnPayload := bit2oct( 
                    encvalue(
                        v_gnNonSecuredPacket
                    )
                );
                log("v_gnPayload= ", v_gnPayload);
                f_buildGnSecuredDenm(
                    v_securedMessageBeacon,
                    m_payload_signed(v_gnPayload),
                    e_certificate,
                    m_threeDLocation(
                        1234,
                        5678,
                        '002F'O
                    )
                );
                log("v_securedMessageBeacon= ", v_securedMessageBeacon);
                
                // Build secured Gn packet
                v_gnReq := m_geoNwReq_linkLayerBroadcast(
                    m_geoNwSecPdu(
                        v_gnNonSecuredPacket,
                        v_securedMessageBeacon
                    ) // End of template m_geoNwSecPdu
                ); // End of template m_geoNwReq_linkLayerBroadcast
                
                // Encode it
                v_encMsg := bit2oct(encvalue(v_gnReq));
                log("v_encMsg= ", v_encMsg);
                if (not isbound(v_encMsg)) {
                    setverdict(fail, "Encoding failed!");
                    stop;
                }
                setverdict(pass, "Encoding passed.");
                // Decode it
                v_gnReq.msgOut.gnPacket.packet.commonHeader.plLength := 60;
                test_decodePDU<GeoNetworkingReq>(
                    v_gnReq, 
                    v_encMsg
                );
                log("v_gnReq: ", v_gnReq);
                
                if (decvalue(oct2bit(v_encMsg), v_gnReq) == 0) {
                    if (f_verifyGnSecuredMessageSignatureWithCertificate(v_gnReq.msgOut.gnPacket.securedMsg, vc_atCertificate) == true) {
                        setverdict(pass, "Signature check succeed.");
                    } else {
                        setverdict(fail, "Signature check failed.");
                    } 
                } else {
                    setverdict(fail, "Decoding failed.");
                }
            
            /**
             * @desc validate GeoNetworkingInd/Beacon
             * @verdict Pass on success, Fail otherwise
             */
            testcase tc_GeoNetInd_Beacon() runs on TCType system TCType {
                
                if (PX_GN_UPPER_LAYER != e_any) {
                    log("PX_GN_UPPER_LAYER shall be set to e_any");
                    stop;
                }
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd_withLinkLayerDestination( 
                        mw_geoNwPdu(
                            mw_geoNwBeaconPacket(
                                ?
                            )
                        ), 
                        'FFFFFFFFFFFF'O
                    ), 
                    '01002B0A0010800000000100BC21A4FEDECABEEF0001E240000012F8000002A380372694FFFFFFFFFFFF'O
                );
            
            /**
             * @desc validate secured GeoNetworkingInd/Beacon
             * @verdict Pass on success, Fail otherwise
             */
            testcase tc_GeoNetInd_SecuredBeacon() runs on TCType system TCType {
                var GeoNetworkingInd v_gnInd;
                var octetstring v_decMsg := '02002B0A021E80015024A224729A4C800000013981FD42941003000004D20000162E002F01200010800000000100BC21A4FEDECABEEF0001E240000012F8000002A380372694430100027714B9A92AC942E36C0B8A87C516770251A24AB00394FBD2C01A9105CA677A95968A816454027D23D26F0CD335C12D111D8FD7D02A85DA45FB2F3E6C99BFE0EAFFFFFFFFFFFF'O;
                
                if (PX_GN_UPPER_LAYER != e_any) {
                    log("PX_GN_UPPER_LAYER shall be set to e_any");
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd(
                        mw_geoNwSecPdu(
                            mdw_securedMessage,
                            mw_geoNwBeaconPacket(
                                ?
                            )
                        )
                    ), 
                    v_decMsg
                );
                
                // Check signature
                if (decvalue(oct2bit(v_decMsg), v_gnInd) == 0) {
                    if (f_verifyGnSecuredMessageSignatureWithCertificate(v_gnInd.msgIn.gnPacket.securedMsg, vc_atCertificate) == true) {
                        setverdict(pass, "Signature check succeed.");
                    } else {
                        setverdict(fail, "Signature check failed.");
                    } 
                } else {
                    setverdict(fail, "Decoding failed.");
                }
            
            /**
             * @desc validate GeoNetworkingInd/LsReply
             * @verdict Pass on success, Fail otherwise
             */
            testcase tc_GeoNetInd_LsRequestPacket() runs on TCType system TCType {
                
                if (PX_GN_UPPER_LAYER != e_any) {
                    log("PX_GN_UPPER_LAYER shall be set to e_any");
                    stop;
                }
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd_withLinkLayerDestination( 
                        mw_geoNwPdu(
                            mw_geoNwLsRequestPacket(
                                12345,
                                ?
                            )
                        ), 
                        'FFFFFFFFFFFF'O
                    ), 
                    '01002B0A0060800000000A0030390000BC21A4FEDECABEEF0001E240000012F8000002A380372694BC21A4FEDECABEEFFFFFFFFFFFFF'O
                );
            
            /**
             * @desc validate secured GeoNetworkingInd/LsReply
             * @verdict Pass on success, Fail otherwise
             */
            testcase tc_GeoNetInd_SecuredLsRequestPacket() runs on TCType system TCType {
                var GeoNetworkingInd v_gnInd;
                var octetstring v_decMsg := '02002B0A021E80015024A224729A4C800000013981FF5C67A803000004D20000162E002F012C0060800000000A0030390000BC21A4FEDECABEEF0001E240000012F8000002A380372694BC21A4FEDECABEEF430100027C8D3FE7CCA30FFBE6CC7D3C7C31F06EDB8976268F584052C4112C9D9FA1180DF3F389DB64926D40C9A4EB72BCB81A41641018A980703C3CB1BD1BF7482B58E6FFFFFFFFFFFF'O;
                
                if (PX_GN_UPPER_LAYER != e_any) {
                    log("PX_GN_UPPER_LAYER shall be set to e_any");
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd_withLinkLayerDestination( 
                        mw_geoNwSecPdu(
                            mdw_securedMessage,
                            mw_geoNwLsRequestPacket(
                                12345,
                                ?
                            )
                        ), 
                        'FFFFFFFFFFFF'O
                    ), 
                    v_decMsg
                );
                
                
                // Check signature
                if (decvalue(oct2bit(v_decMsg), v_gnInd) == 0) {
                    if (f_verifyGnSecuredMessageSignatureWithCertificate(v_gnInd.msgIn.gnPacket.securedMsg, vc_atCertificate) == true) {
                        setverdict(pass, "Signature check succeed.");
                    } else {
                        setverdict(fail, "Signature check failed.");
                    } 
                } else {
                    setverdict(fail, "Decoding failed.");
                }
            
            testcase tc_GeoNetInd_ShbHeaderPacket() runs on TCType system TCType {
                
                if (PX_GN_UPPER_LAYER != e_any) {
                    log("PX_GN_UPPER_LAYER shall be set to e_any");
                    stop;
                }
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd_withLinkLayerDestination( 
                        mw_geoNwPdu(
                            mw_geoNwShbPacket(
                                ?,
                                ?
                            )
                        ), 
                        'FFFFFFFFFFFF'O
                    ), 
                    '01002B0A00508000000F0A00BC21A4FEDECABEEF0001E240000012F8000002A3803726940000000044454641554C545F5041594C4F4144FFFFFFFFFFFF'O
                );
            
            testcase tc_GeoNetInd_SecuredDigest() runs on TCType system TCType {
                
                if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) {
                    log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB");
                    setverdict(inconc);
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd(
                        mw_geoNwSecPdu(
                            mdw_securedMessage, 
                            mw_geoNwAnyPacket_withPayload(
                                ?
                    ))), 
                    '02002b0a0201168001b893358ab25faf640000000148c57ff5ec05000254005210508000002e0a00bc21a4fedecabeeff6c53234000012f8000002a3803726940000000007d1000001020001b20788b80059f48d95cdefc8c5e0020020002461a83c000004805a100c4528399d4c387fff80430100020000f9a888a78d9053507a828711deef7f38d470736fc07bbb7f4bf044ed0d80325b6d55af32e9aeaa69b281132ce3f596ef5eaf4281aa8c4f0398ab126d3f90b855ffffffffffff'O
                );
            
            testcase tc_GeoNetInd_SecuredCertificate_DENM() runs on TCType system TCType {
                
                if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) {
                    log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB");
                    setverdict(inconc);
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd(
                        mw_geoNwSecPdu(
                            mdw_securedMessage, 
                            mw_geoNwAnyPacket_withPayload(
                                ?
                    ))), 
                    '02002B0A028124800202015024A224729A4C80010080950000044D8F459AD7485EF21803B7CB9B6D857CCD721542BFE99FACFFB3DF44C34140593126362569F78A5169EBB0FC878B9AD07DDC2B36D01E83C02EABE71210C879DF010100046AE865F5E00290B2BE93D1F26D9857F7B19E53D213846B2C276247DCCED022AC244258C9D1ACF2E3F8BF750F952B02C81ACA013AC018C56F85C4A7E68E9587780220210AC040800100C0408101002401146B4B831A5617030303181DB9CF7C052616001DB9566E0526872A1D53F0D00527835000002E7F2FCB38E1418219A51808983988739DFDC649DA209EA6C59319117374E0ED4DBED15F51C6D3106883DCE308A9E6A8E314EA24E8322DDFB02971FDB8C22B26000001398255A96C2803000004D20000162E002F05C04081017020418000003C0A000D800000A832A40102030405000011E90000007E0000007B002D007D00048D8800007FE904D217BE23A3000007D2000001010001B207C70000D90380000A084446EB02821111BACCFA46CAE6F7E4630001001000186A000009600C05B00000DFFFF7FFFD8CE40400430100024AD9813B0BE1B67A8C1AB211D28C6BFC5FE3EA1A3AC5349DB6FF06FBAFF708C54466E608FEAE8AA565F4EA793CCC5D1726679CD59FFA6FD00FB5A61569D343E4FFFFFFFFFFFF'O
            
            testcase tc_GeoNetInd_SecuredCertificate_CAM() runs on TCType system TCType {
                
                if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) {
                    log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB");
                    setverdict(inconc);
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd(
                        mw_geoNwSecPdu(
                            mdw_securedMessage, 
                            mw_geoNwAnyPacket_withPayload(
                                ?
                    ))), 
                    '02002B0A028119800202015024A224729A4C80010080950000044D8F459AD7485EF21803B7CB9B6D857CCD721542BFE99FACFFB3DF44C34140593126362569F78A5169EBB0FC878B9AD07DDC2B36D01E83C02EABE71210C879DF010100046AE865F5E00290B2BE93D1F26D9857F7B19E53D213846B2C276247DCCED022AC244258C9D1ACF2E3F8BF750F952B02C81ACA013AC018C56F85C4A7E68E9587780220210AC040800100C0408101002401146B4B831A5617030303181DB9CF7C052616001DB9566E0526872A1D53F0D00527835000002E7F2FCB38E1418219A51808983988739DFDC649DA209EA6C59319117374E0ED4DBED15F51C6D3106883DCE308A9E6A8E314EA24E8322DDFB02971FDB8C22B260000013981EF9678B805C04080015110508000002D0A00BC21A4FEDECABEEF0001E240000012F8000002A3803726940000000007D2000001020001B20788B80059F48D95CDEFC8C6000200200030D41E0000012016840310A50733A9870FFFD0430100022457F8BB0467B2C62318395A56BBF0004BE8E486D1186586CB385D332DDE83EA511F53431CE38F6F13835DEA3AF3F20D3FC84341EE87090992FC1E05AD6ECA2BFFFFFFFFFFFF'O
            /**
             * @desc validate secured GeoNetworkingInd/SHB with certificates chain
             * @verdict Pass on success, Fail otherwise
             */
            testcase tc_GeoNetInd_SecuredShbCAMWithCertificatesChain() runs on TCType system TCType {
                var GeoNetworkingInd v_gnInd;
                var octetstring v_decMsg := '02002B0A028231800382200201FABD6A8FA6CAB3740210455453495F506C7567746573745F41418091000004F4A81DE17B3BBFD8ABB276D9F1FF8290FCC5FF8863E8B251398E9DDB81A9FDC1268AED92B4B15099AB0BCE24378BE907D5EF0E7F3FB69C1A84C9FC5452A20A2C010100043288A11BE5A5781D7C206DAF3080FBEB52AE945F809CF266D029EA1CD57042303288A11BE5A5781D7C206DAF3080FBEB52AE945F809CF266D029EA1CD570423002202006C04080C040812401146B4B831A5617030303181DB9CF7C052616001DB9566E0526872A1D53F0D00527835000009C26B3AA8A670471D89ECD7DB76E907B5D7F5C519E6C2FCB362A7DC225172BD176E7AF6E54754D30B4F18F80B9130B80C99EAAAF65C2A9D8A587C9B7ED629F6202015024A224729A4C80010080950000044D8F459AD7485EF21803B7CB9B6D857CCD721542BFE99FACFFB3DF44C34140593126362569F78A5169EBB0FC878B9AD07DDC2B36D01E83C02EABE71210C879DF010100046AE865F5E00290B2BE93D1F26D9857F7B19E53D213846B2C276247DCCED022AC244258C9D1ACF2E3F8BF750F952B02C81ACA013AC018C56F85C4A7E68E9587780220210AC040800100C0408101002401146B4B831A5617030303181DB9CF7C052616001DB9566E0526872A1D53F0D00527835000002E7F2FCB38E1418219A51808983988739DFDC649DA209EA6C59319117374E0ED4DBED15F51C6D3106883DCE308A9E6A8E314EA24E8322DDFB02971FDB8C22B260000013981F04477B005C04080015110508000002D0A00BC21A4FEDECABEEF0001E240000012F8000002A3803726940000000007D2000001020001B20788B80059F48D95CDEFC8C6000200200030D41E0000012016840310A50733A9870FFFD043010002388DEF19AE517360CA2D84BF2CE360B6B65B553A2D21B8329DC9897DFD45117452EAD22250846919E58E0C7E28A25F69423A120491D17BEB08FD38C3A454E63CFFFFFFFFFFFF'O;
                var bitstring v_decode;
                
                if ((PX_GN_UPPER_LAYER != e_btpA) and (PX_GN_UPPER_LAYER != e_btpB)) {
                    log("PX_GN_UPPER_LAYER shall be set to e_btpA or e_btpB");
                    setverdict(inconc);
                    stop;
                }
                
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_decodePDU<GeoNetworkingInd>( 
                    mw_geoNwInd(
                        mw_geoNwSecPdu(
                            mdw_securedMessage(
                                superset(
                                    mw_header_field_signer_info_certificate_chain(
                                        ?
                                    )
                                )
                            )
                        )
                    ), 
                    v_decMsg
                );
                
            }
            
        } // End of testGeoNetPrimitiveMessages
        
        group testUtEvent {
            
            testcase tc_UtGnInitialize() runs on TCType system TCType {
                test_PDU<UtInitialize>(m_gnInitialize, false);
            }
            
            testcase tc_UtSecGnInitialize() runs on TCType system TCType {
                // Load certificates & keys
                if (f_loadCertificates(PX_IUT_SEC_CONFIG_NAME) == false) {
                    setverdict(fail);
                    stop;
                }
                f_setGenerationLocation(
                    f_getTsLatitude(),
                    f_getTsLongitude()
                );
                
                test_PDU<UtInitialize>(m_secGnInitialize(f_calculateDigestFromCertificate(vc_atCertificate)), false);
            }
            
            testcase tc_UtInitializeResult() runs on TCType system TCType {
                test_decodePDU<UtInitializeResult>(UtInitializeResult:true, '0101'O);
            testcase tc_UtGnTrigger_01() runs on TCType system TCType {
                test_PDU<UtGnTrigger>(
                    m_generateShbMessageWithPayload(
                        char2oct("PAYLOAD")
                    ), 
                    false
                );
            }
            
            testcase tc_UtGnTrigger_02() runs on TCType system TCType {
                test_PDU<UtGnTrigger>(
                    m_generateTsbMessage, 
                    false
                );
            }
            
            testcase tc_UtGnTrigger_03() runs on TCType system TCType {
                test_PDU<UtGnTrigger>(
                    m_generateTsbMessageWithLifetime(c_lifetime), 
                    false
                );
            }
            
            testcase tc_UtGnTrigger_04() runs on TCType system TCType {
                test_PDU<UtGnTrigger>(
                    m_generateTsbMessageWithTrafficClass(
                        valueof(
                            m_trafficClass(
                                e_scfDisabled
                    ))), 
                    false
                );
            }
            
            testcase tc_UtGnTrigger_05() runs on TCType system TCType {
                test_PDU<UtGnTrigger>(
                    m_generateTsbMessage, 
                    false
                );
            }
            
            testcase tc_UtGnEventInd_01() runs on TCType system TCType {
                var octetstring v_data := '55003007d1000001020001b20712244059f48d95cdefc8c6000200200030d41e0000012016840310a50733a9870fffd0004000'O;
                test_decodePDU<UtGnEventInd>(UtGnEventInd:?, v_data);
            }
            
filatov's avatar
filatov committed
        } // End of group testUtEvent

    } // End of group LibItsGeoNetworking_testCases

} // End of module test_LibItsGeoNetworking_TypesAndValues