/**
 *  @author     ETSI / STF449 / STF484 / STF517
 *  @version    $URL$
 *              $Id$
 *  @desc       Test Control file for DENM
 *  @copyright   ETSI Copyright Notification
 *               No part may be reproduced except as authorized by written permission.
 *               The copyright and the foregoing restriction extend to reproduction in all media.
 *               All rights reserved.
 *
 */
module ItsDenm_TestControl {
    
    // ATS DENM
    import from ItsDenm_TestCases {testcase all;}
    
    // LibIts
    import from LibItsDenm_Pics all;
    
    // Test Execution
    control {
        
        if(PICS_DENM_GENERATION) {
           execute(TC_DEN_MSGF_BV_01());
            execute(TC_DEN_MSGF_BV_02());
            
            execute(TC_DEN_EVGN_BV_01());
            execute(TC_DEN_EVGN_BV_02());
            execute(TC_DEN_EVGN_BV_03());
            execute(TC_DEN_EVGN_BV_04());
            execute(TC_DEN_EVGN_BV_05());
            execute(TC_DEN_EVGN_BV_07());
            execute(TC_DEN_EVGN_BV_10());
        }
        
        if(PICS_DENM_UPDATE) {
            execute(TC_DEN_EVUP_BV_01());
            execute(TC_DEN_EVUP_BV_02());
            execute(TC_DEN_EVUP_BV_03());
            execute(TC_DEN_EVUP_BO_04());
        }
        
        if(PICS_DENM_CANCELLATION) {
            execute(TC_DEN_EVTR_BV_01());
            execute(TC_DEN_EVTR_BV_04());
            execute(TC_DEN_EVTR_BV_08());
        }
        
        if(PICS_DENM_NEGATION) {
            execute(TC_DEN_EVTR_BV_02());
            execute(TC_DEN_EVTR_BV_03());
            execute(TC_DEN_EVTR_BV_05());
        }
        
        if(PICS_DENM_NEGATION or PICS_DENM_CANCELLATION) {
            execute(TC_DEN_EVTR_BO_06());
            execute(TC_DEN_EVTR_BO_07());
        }
        
        if(PICS_DENM_REPETITION) {
            execute(TC_DEN_EVRP_TI_01());
            execute(TC_DEN_EVRP_BV_02());
            execute(TC_DEN_EVRP_BV_03());
            execute(TC_DEN_EVRP_BV_04());
            execute(TC_DEN_EVRP_BV_05());
            execute(TC_DEN_EVRP_BV_06());
            execute(TC_DEN_EVRP_BV_08());
            execute(TC_DEN_EVRP_BV_09());
            execute(TC_DEN_EVRP_BV_10());
            execute(TC_DEN_EVRP_BV_11());
        }

        if(PICS_DENM_GENERATION) {
            execute(TC_DEN_PAR_BV_01());
            execute(TC_DEN_PAR_BV_02());
            if(PICS_IS_IUT_SECURED) {
                execute(TC_DEN_SSP_BV_01_01());
                execute(TC_DEN_SSP_BV_01_02());
            }
        }
        
        if(PICS_DENM_RECEPTION) {
            execute(TC_DEN_MSRV_BV_01());
            execute(TC_DEN_MSRV_BV_02());
            execute(TC_DEN_MSRV_BO_03());
            execute(TC_DEN_MSRV_BO_04());
            execute(TC_DEN_MSRV_BO_05());
            execute(TC_DEN_MSRV_BO_06());
            execute(TC_DEN_MSRV_BV_07());
            
            if(PICS_IS_IUT_SECURED) {
                execute(TC_DEN_MSRV_BO_08_01());
                execute(TC_DEN_MSRV_BO_08_02());

                execute(TC_DEN_MSRV_BO_09_01());
                execute(TC_DEN_MSRV_BO_09_02());
            }
            if(PICS_IMPACT_REDUCTION) {
                execute(TC_DEN_MSRV_BV_10());
            }
        }        
        
        if(PICS_DENM_KAF) {
            execute(TC_DEN_KAFW_BV_01());
            execute(TC_DEN_KAFW_BV_02());
            execute(TC_DEN_KAFW_TI_03());
            execute(TC_DEN_KAFW_BV_04());
            execute(TC_DEN_KAFW_BV_05());
            execute(TC_DEN_KAFW_BV_06());
            execute(TC_DEN_KAFW_BV_07());
            execute(TC_DEN_KAFW_BV_08());
            execute(TC_DEN_KAFW_BV_09());
            execute(TC_DEN_KAFW_BV_10());
        }
    }
    
} // end ItsDenm_TestControl