Commit 83ccb35c authored by garciay's avatar garciay
Browse files

UpperTester changes validation

parent 0f012574
Loading
Loading
Loading
Loading
+151 −1
Original line number Diff line number Diff line
@@ -129,6 +129,156 @@ module TestCodec_DENM {
        setverdict(pass, "Encoding passed.");
      } // End of tc_Denm_UtDenmChangePseudonym

      /**
       * @desc Validate template Denm/UtDenmTrigger
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmTrigger_1() runs on TCType system TCType {
        var bitstring v_encMsg;
        var UtDenmTrigger v_decMsg;
        var integer v_res := 0;
        var bitstring v_expEncMsg := oct2bit('1090005E28CBC883000002005B00000000'O);
        var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_);
        var template (value) UtDenmTrigger v_trigger := m_utTriggerEvent(v_situation);
    
        // Encode template
        v_trigger.detectionTime := 404411369603;
        log("Encode template ", valueof(v_trigger));
        v_encMsg := encvalue(v_trigger);
        log("Encoded message:  ", bit2oct(v_encMsg));
        // Check result
        if (not isbound(v_encMsg)) {
          setverdict(fail, "Encoding failed!");
          stop;
        }
        if (not match(v_encMsg, v_expEncMsg)) {
          log("Expected message: ", bit2oct(valueof(v_expEncMsg)));
          setverdict(fail, "Encoding failed, not the expected result!");
          stop;
        }
        setverdict(pass, "Encoding passed.");
      } // End of tc_Denm_UtDenmTrigger_1

      /**
       * @desc Validate template Denm/UtDenmTrigger
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmTrigger_2() runs on TCType system TCType {
        var bitstring v_encMsg;
        var UtDenmTrigger v_decMsg;
        var integer v_res := 0;
        var bitstring v_expEncMsg := oct2bit('10d6005e28cbc88300000a000005005b000000000107d000'O);
        var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_);
        var template (value) UtDenmTrigger v_trigger := m_utTriggerEvent(v_situation, 10, 5, 2000, 1);
        
        // Encode template
        v_trigger.detectionTime := 404411369603;
        log("Encode template ", valueof(v_trigger));
        v_encMsg := encvalue(v_trigger);
        log("Encoded message:  ", bit2oct(v_encMsg));
        // Check result
        if (not isbound(v_encMsg)) {
          setverdict(fail, "Encoding failed!");
          stop;
        }
        if (not match(v_encMsg, v_expEncMsg)) {
          log("Expected message: ", bit2oct(valueof(v_expEncMsg)));
          setverdict(fail, "Encoding failed, not the expected result!");
          stop;
        }
        setverdict(pass, "Encoding passed.");
      } // End of tc_Denm_UtDenmTrigger_2

      /**
       * @desc Validate template Denm/UtDenmUpdate
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmUpdate_1() runs on TCType system TCType {
        var bitstring v_encMsg;
        var UtDenmTrigger v_decMsg;
        var integer v_res := 0;
        var bitstring v_expEncMsg := oct2bit('12400001B207000A005E28CBC883005B0000'O);
        var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_);
        var template (value) UtDenmUpdate v_update := m_utUpdateEvent(m_tsActionId(10), v_situation);
        
        // Encode template
        v_update.detectionTime := 404411369603;
        log("Encode template ", valueof(v_update));
        v_encMsg := encvalue(v_update);
        log("Encoded message:  ", bit2oct(v_encMsg));
        // Check result
        if (not isbound(v_encMsg)) {
          setverdict(fail, "Encoding failed!");
          stop;
        }
        if (not match(v_encMsg, v_expEncMsg)) {
          log("Expected message: ", bit2oct(valueof(v_expEncMsg)));
          setverdict(fail, "Encoding failed, not the expected result!");
          stop;
        }
        setverdict(pass, "Encoding passed.");
      } // End of tc_Denm_UtDenmUpdate_1

      /**
       * @desc Validate decoding of Denm/UtDenmTriggerResult
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmTriggerResult() runs on TCType system TCType {
        var bitstring v_binary := oct2bit('11017f383ea50003'O);
        var UtDenmResults v_decMsg;
        var integer v_res := 0;
        var template (value) UtDenmResults v_expDecMsg := { utDenmTriggerResult := { true, { 2134392485, 3 } } };
        
        // Encode template
        v_res := decvalue(v_binary, v_decMsg);
        log("Decoded message: ", v_decMsg);
        select (v_res) {
        case (0) {
          if(match(v_decMsg, v_expDecMsg)) {
            setverdict(pass);
          } else {
            setverdict(fail);
          }
        }
        case (1) {
          setverdict(fail, "Decoding failed.");
        }
        case (2) {
          setverdict(fail, "Not enough bits.");
        }
        }
      } // End of tc_Denm_UtDenmTriggerResult

      /**
       * @desc Validate decoding of Denm/UtDenmUpdateResult
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmUpdateResult() runs on TCType system TCType {
        var bitstring v_binary := oct2bit('13010000000590D0'O);
        var UtDenmResults v_decMsg;
        var integer v_res := 0;
        var template (value) UtDenmResults v_expDecMsg := { utDenmUpdateResult := { true, { 5, 37072 } } };
        
        // Encode template
        v_res := decvalue(v_binary, v_decMsg);
        log("Decoded message: ", v_decMsg);
        select (v_res) {
        case (0) {
          if(match(v_decMsg, v_expDecMsg)) {
            setverdict(pass);
          } else {
            setverdict(fail);
          }
        }
        case (1) {
          setverdict(fail, "Decoding failed.");
        }
        case (2) {
          setverdict(fail, "Not enough bits.");
        }
        }
      } // End of tc_Denm_UtDenmUpdateResult

    } // End of group testDenmUpperTester
    
    group testDenmPort {