/******************************************************************************
 * Copyright (c) ETSI 2017.
 *
 * This file is subject to copyrights owned by ETSI. Non-exclusive permission
 * is hereby granted, free of charge, to copy, reproduce and amend this file
 * under the following conditions: It is provided "as is", without warranty of any
 * kind, expressed or implied.
 * 
 * ETSI shall never be liable for any claim, damages, or other liability arising
 * from its use or inability of use.This permission does not apply to any documentation
 * associated with this file for which ETSI keeps all rights reserved. The present
 * copyright notice shall be included in all copies of whole or part of this
 * file and shall not imply any sub-license right.
 *
 * Modified by: Adrien Kirjak
 *
 ** @version  0.0.1
 ** @purpose  1:16.1.2, Ensure that predefined decvalue_unichar function works properly
 ** @verdict  pass accept, ttcn3verdict:pass

 ***************************************************/

/* The following requirements are tested:  

 * this test focuses on the predefined functions decvalue_unichar (utf-16 big endian)*/



module Sem_160102_predefined_functions_077 {
    
    type component GeneralComp {

    }

	type integer I with { variant "FIELDLENGTH(16)" };

    testcase TC_Sem_160102_predefined_functions_077 () runs on GeneralComp {

		var I input := 123; 
		
		//encoded text:
	   	var universal charstring v_enc := encvalue_unichar(input,"UTF-16BE");


		//decode:
		var I v_test_dec;
		var integer v_res:= decvalue_unichar(v_enc,v_test_dec,"UTF-16BE"); //decode (UTF-16 big endian)
		
		if (v_res == 0) {
		      setverdict(pass, "Decoded ", v_enc , " with result ", v_res);
		} else {
		      setverdict(fail, "Unexpected decoding result: Decoded ", v_enc , " with result ", v_res);
		}

   }

    control{

        execute(TC_Sem_160102_predefined_functions_077());

    }

} with { encode "RAW"}
