[other_task #1679246] Fix CLL Variable tests + DataSource/DsRestAPI tests fix

Change-Id: Iba75d0d7faa7963992c52c1e4d11b02f9fd0f37d
Signed-off-by: József Gyürüsi <jozsef.gyurusi@ericsson.com>
diff --git a/src/Logging/EPTF_CLL_Logging_Definitions.ttcn b/src/Logging/EPTF_CLL_Logging_Definitions.ttcn
index 7061ac9..cda4dfa 100644
--- a/src/Logging/EPTF_CLL_Logging_Definitions.ttcn
+++ b/src/Logging/EPTF_CLL_Logging_Definitions.ttcn
@@ -266,6 +266,9 @@
   private var integer v_EPTF_Logging_myMaskId; // the Id of my logging masks
   //private var EPTF_CharstringList v_EPTF_Logging_errorMsgs := {}; // the list of error messages - global var used in Common instead
   private var charstring v_EPTF_Logging_expectedError := ""; // the expected assert message at cleanup
+  private var EPTF_CharstringList v_EPTF_Logging_expectedWarnings := {} // the expected warning messagea checked at cleanup
+  private var EPTF_BooleanList v_EPTF_Logging_expectedWarning_logged := {}
+
   public var EPTF_Logging_strList v_Logging_selectionList := {"EPTF_CLL", "EPTF_User"};
 }
 
diff --git a/src/Logging/EPTF_CLL_Logging_Functions.ttcn b/src/Logging/EPTF_CLL_Logging_Functions.ttcn
index 593bdad..ec61ade 100644
--- a/src/Logging/EPTF_CLL_Logging_Functions.ttcn
+++ b/src/Logging/EPTF_CLL_Logging_Functions.ttcn
@@ -63,6 +63,7 @@
 //      <f_EPTF_Logging_checkExpectedError>
 //      <f_EPTF_Logging_registerPreambleFn>
 //      <f_EPTF_Logging_removePreambleFn>
+//      <f_EPTF_Logging_setExpectedWarningMsg>
 //
 ///////////////////////////////////////////////////////////////
 
@@ -502,6 +503,10 @@
   f_loggingUI_refreshVar := null;
   f_loggingUI_update := null;
 
+  v_EPTF_Logging_expectedWarnings := {}
+  v_EPTF_Logging_expectedWarning_logged := {}
+
+  f_EPTF_Logging_registerPreambleFn(refers(f_EPTF_Logging_checkExpectedWarnings_preamble_FT));
 
   // create my log masks:
   v_EPTF_Logging_myMaskId := f_EPTF_Logging_registerComponentMasks("EPTF_Logging", {"Warning", "Debug", "DebugM", "DebugV"}, EPTF_Logging_CLL);
@@ -559,6 +564,7 @@
   {
     return;
   }
+  f_EPTF_Logging_checkWarnings_at_cleanup();
   v_EPTF_Logging_ComponentMask_List := {};
   v_EPTF_Logging_preambleFnList := {};
   v_EPTF_Logging_isRegisteredPreambleFn := false;
@@ -1206,6 +1212,53 @@
   }
 }
 
+private function f_EPTF_Logging_checkExpectedWarnings_preamble_FT(in charstring pl_message) runs on EPTF_Logging_CT {
+  if (not match(pl_message,pattern "*Warning*")) {
+    return;
+  }
+  var charstring vl_pattern;
+  for (var integer i:=0; i<sizeof(v_EPTF_Logging_expectedWarnings); i:=i+1) {
+    vl_pattern := v_EPTF_Logging_expectedWarnings[i];
+    if (match(pl_message,pattern vl_pattern)) {
+      v_EPTF_Logging_expectedWarning_logged[i] := true; // verdict is only pass if this warning is logged
+    }
+  }
+}
+
+private function f_EPTF_Logging_checkWarnings_at_cleanup() runs on EPTF_Logging_CT {
+  for (var integer i:=0; i<sizeof(v_EPTF_Logging_expectedWarnings); i:=i+1) {
+    if (v_EPTF_Logging_expectedWarning_logged[i] == false) {
+      setverdict(fail, "Expected warning was not logged: ", v_EPTF_Logging_expectedWarnings[i])
+      return;
+    }
+  }
+  setverdict(pass)
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_EPTF_Logging_setExpectedWarningMsg
+//
+//  Purpose:
+//   Sets a warning message that is checked in cleanup if it was among the warning messages logged.
+//
+//  Parameters:
+//    pl_expectedWarning - *in charstring* - the warning message pattern to expect as warning log
+//
+//  Return Value:
+//    -
+//
+//  Detailed Comments:
+//    The expected warning patterns are automatically checked in <f_EPTF_Logging_cleanup_CT>,
+//    and the verdict is set automatically to pass if all matches with any warning messages, and fail if any of them does not match.
+//    If this function is called more than once, several expected warning messages can be set
+//
+///////////////////////////////////////////////////////////
+public function f_EPTF_Logging_setExpectedWarningMsg(in charstring pl_expectedWarning) runs on EPTF_Logging_CT {
+  v_EPTF_Logging_expectedWarnings := v_EPTF_Logging_expectedWarnings & {pl_expectedWarning};
+  v_EPTF_Logging_expectedWarning_logged := v_EPTF_Logging_expectedWarning_logged & {false}
+}
+
+
 //////////////////////////////////////////////////////////
 //  Function: f_EPTF_Logging_logAll
 // 
diff --git a/test/DataSource/EPTF_DataSource_Test_Functions.ttcn b/test/DataSource/EPTF_DataSource_Test_Functions.ttcn
index 8f91b55..c8e2e18 100644
--- a/test/DataSource/EPTF_DataSource_Test_Functions.ttcn
+++ b/test/DataSource/EPTF_DataSource_Test_Functions.ttcn
@@ -255,7 +255,7 @@
     const charstring c_EPTF_CLL_DataSourceClient_Test_DSOwnerValueHandlerParam := "ValueHandlerParam";

     const charstring c_EPTF_CLL_DataSourceClient_Test_DSOwnerValueHandlerParam2 := "ValueHandlerParam2";

     

-    function f_EPTF_CLL_DataSourceClient_Test_dsOwnerBehaviour(in charstring pl_selfName, in EPTF_DataSource_CT pl_sourceCompRef, in charstring pl_errMessage := "") runs on EPTF_CLL_DataSource_Client_CT {

+    function f_EPTF_CLL_DataSourceClient_Test_dsOwnerBehaviour(in charstring pl_selfName, in EPTF_DataSource_CT pl_sourceCompRef, in charstring pl_errMessage := "", in charstring pl_warningMessage := "") runs on EPTF_CLL_DataSource_Client_CT {

       f_EPTF_DataSourceClient_init_CT(pl_selfName,pl_sourceCompRef);

       var integer vl_varIdx;

       f_EPTF_Var_newInt(c_EPTF_CLL_DataSourceClient_Test_DSOwnerElementName&"."&c_EPTF_CLL_DataSourceClient_Test_DSOwnerDataVarName,0,vl_varIdx);

@@ -273,6 +273,9 @@
         f_EPTF_Base_setNegativeTestMode();

         f_EPTF_Base_setExpectedErrorMsg(pl_errMessage);

       }

+      if (pl_warningMessage != "") {

+        f_EPTF_Logging_setExpectedWarningMsg(pl_warningMessage);

+      }

       f_EPTF_Base_wait4Shutdown();

     }

 

@@ -7615,7 +7618,7 @@
     }

   

   //this function initialize datasource and client for test setDataValue_nonBlocking

-  function f_EPTF_CLL_DataSource_Test_setDataValue_nonBlocking_init(in charstring pl_name, in charstring pl_errMessage := "") runs on EPTF_CLL_DataSource_Test_NonBlocking_CT {

+  function f_EPTF_CLL_DataSource_Test_setDataValue_nonBlocking_init(in charstring pl_name, in charstring pl_errMessage := "", in charstring pl_warningMessage := "") runs on EPTF_CLL_DataSource_Test_NonBlocking_CT {

       

       var charstring c_test := "DataSource_setDataValueNonBlocking" & pl_name;

   

@@ -7625,7 +7628,7 @@
       // start DSClient DataOwner CT

       var EPTF_DataSource_CT vl_dataSourceComp := self;

       var EPTF_CLL_DataSource_Client_CT vl_client_owner := EPTF_CLL_DataSource_Client_CT.create;

-      vl_client_owner.start(f_EPTF_CLL_DataSourceClient_Test_dsOwnerBehaviour(c_test & "_DsOwner",vl_dataSourceComp, pl_errMessage));

+      vl_client_owner.start(f_EPTF_CLL_DataSourceClient_Test_dsOwnerBehaviour(c_test & "_DsOwner",vl_dataSourceComp, pl_errMessage, pl_warningMessage));

       v_Test_NonBlocking_clientRef := vl_client_owner;

       

       timer t_wait := 1.0;

diff --git a/test/DataSource/EPTF_DataSource_Test_Testcases.ttcn b/test/DataSource/EPTF_DataSource_Test_Testcases.ttcn
index 63035db..4e75302 100644
--- a/test/DataSource/EPTF_DataSource_Test_Testcases.ttcn
+++ b/test/DataSource/EPTF_DataSource_Test_Testcases.ttcn
@@ -3631,7 +3631,7 @@
 ///////////////////////////////////////////////////////////
 testcase tc_EPTF_CLL_DataSource_Test_setDataValue_nonblocking_negative_bad_int_type() runs on EPTF_CLL_DataSource_Test_NonBlocking_CT {
 
-    f_EPTF_CLL_DataSource_Test_setDataValue_nonBlocking_init("negative_bad_int_type", "Error: EPTF_Var: ERROR:Cannot convert direct content*");
+    f_EPTF_CLL_DataSource_Test_setDataValue_nonBlocking_init("negative_bad_int_type", pl_warningMessage := "EPTF_Var:Warning: ERROR:Cannot convert direct content*");
     
     var EPTF_CLL_DataSource_Test_NonBlocking_Handler vl_handler := {dataValueHandler:=refers(f_EPTF_DataSourceTest_NonBlocking_setDataValue_getDataHandler)};
     
@@ -3663,7 +3663,7 @@
 ///////////////////////////////////////////////////////////
 testcase tc_EPTF_CLL_DataSource_Test_setDataValue_nonblocking_negative_bad_intlist_type() runs on EPTF_CLL_DataSource_Test_NonBlocking_CT {
 
-    f_EPTF_CLL_DataSource_Test_setDataValue_nonBlocking_init("negative_bad_intlist_type", "Error: EPTF_Var: ERROR:Cannot convert direct content*");
+    f_EPTF_CLL_DataSource_Test_setDataValue_nonBlocking_init("negative_bad_intlist_type", pl_warningMessage := "EPTF_Var:Warning: ERROR:Cannot convert direct content*");
     
     var EPTF_CLL_DataSource_Test_NonBlocking_Handler vl_handler := {dataValueHandler:=refers(f_EPTF_DataSourceTest_NonBlocking_setDataValue_getDataHandler)};
     
diff --git a/test/DsRestAPI/EPTF_DsRestAPI_Test_Testcases.ttcn b/test/DsRestAPI/EPTF_DsRestAPI_Test_Testcases.ttcn
index 23bdf61..f3788f3 100644
--- a/test/DsRestAPI/EPTF_DsRestAPI_Test_Testcases.ttcn
+++ b/test/DsRestAPI/EPTF_DsRestAPI_Test_Testcases.ttcn
@@ -1130,8 +1130,8 @@
 
   f_PutEnv("PYTHONDONTWRITEBYTECODE", "True");
 
-  f_EPTF_DsRestAPI_init_CT("tc_EPTF_DsRestAPI_Test_DSServer_JSONviaHTTP");
-  f_EPTF_DsRestAPI_Test_DS_init_CT("tc_EPTF_DsRestAPI_Test_DSServer_JSONviaHTTP",self);
+  f_EPTF_DsRestAPI_init_CT("tc_EPTF_DsRestAPI_Test_DSServer_JSON"); // component name should be the same as in tc_EPTF_DsRestAPI_Test_DSServer_JSON, because response contains PTC name
+  f_EPTF_DsRestAPI_Test_DS_init_CT("tc_EPTF_DsRestAPI_Test_DSServer_JSON",self);
 
   f_EPTF_DsRestAPI_start(tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress, tsp_EPTF_DsRestAPI_HTTPServer_RemotePort);
 
diff --git a/test/Variable/EPTF_Variable_Test_Testcases.ttcn b/test/Variable/EPTF_Variable_Test_Testcases.ttcn
index 6e8438f..1e05cc5 100644
--- a/test/Variable/EPTF_Variable_Test_Testcases.ttcn
+++ b/test/Variable/EPTF_Variable_Test_Testcases.ttcn
@@ -4330,32 +4330,10 @@
   f_EPTF_Base_stop(pass);
 }
 
-function f_EPTF_Var_Test_adjustTest_checkExpectedWarning_preamble_FT(in charstring pl_message) runs on VariableTest_CT {
-  if (not match(pl_message,pattern "*Warning*")) {
-    return;
-  }
-  if (match(pl_message,pattern v_charstringVar)) {
-    v_boolVar := true; // verdict is only pass if this warning is logged
-  }
-}
-
-function f_EPTF_Var_Test_adjustTest_checkWarning_cleanup() runs on VariableTest_CT {
-  if (v_boolVar == false) {
-    setverdict(fail, "Expected warning was not logged: ", v_charstringVar)
-  } else {
-    setverdict(pass)
-  }
-}
-
-
 testcase tc_EPTF_Var_SubscribeTest_pull_with_adjustRemoteContent_negative() runs on VariableTest_CT{
   f_EPTF_Var_init_CT("SubscribeTest_pull_with_adjustRemoteContent_negative");
   f_EPTF_Var_setMaxWaitTime(0.2)
-  var charstring vl_expected_warning := "*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*";
-  v_charstringVar := vl_expected_warning;
-  f_EPTF_Logging_registerPreambleFn(refers(f_EPTF_Var_Test_adjustTest_checkExpectedWarning_preamble_FT));
-  f_EPTF_Base_registerCleanup(refers(f_EPTF_Var_Test_adjustTest_checkWarning_cleanup));
-  v_boolVar := false;
+  f_EPTF_Logging_setExpectedWarningMsg("*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*");
 
   timer t_wait := 0.2;
 
@@ -4388,11 +4366,7 @@
 testcase tc_EPTF_Var_SubscribeTest_pull_noAlt_with_adjustRemoteContent_negative() runs on VariableTest_CT{
   f_EPTF_Var_init_CT("SubscribeTest_pull_noAlt_with_adjustRemoteContent_negative");
   f_EPTF_Var_setMaxWaitTime(0.2)
-  var charstring vl_expected_warning := "*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*";
-  v_charstringVar := vl_expected_warning;
-  f_EPTF_Logging_registerPreambleFn(refers(f_EPTF_Var_Test_adjustTest_checkExpectedWarning_preamble_FT));
-  f_EPTF_Base_registerCleanup(refers(f_EPTF_Var_Test_adjustTest_checkWarning_cleanup));
-  v_boolVar := false;
+  f_EPTF_Logging_setExpectedWarningMsg("*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*");
 
   timer t_wait := 0.2;
 
@@ -4425,11 +4399,7 @@
 testcase tc_EPTF_Var_SubscribeTest_pull_with_adjustContent_negative() runs on VariableTest_CT{
   f_EPTF_Var_init_CT("SubscribeTest_pull_with_adjustContent_negative");
   f_EPTF_Var_setMaxWaitTime(0.2)
-  var charstring vl_expected_warning := "*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*";
-  v_charstringVar := vl_expected_warning;
-  f_EPTF_Logging_registerPreambleFn(refers(f_EPTF_Var_Test_adjustTest_checkExpectedWarning_preamble_FT));
-  f_EPTF_Base_registerCleanup(refers(f_EPTF_Var_Test_adjustTest_checkWarning_cleanup));
-  v_boolVar := false;
+  f_EPTF_Logging_setExpectedWarningMsg("*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*");
 
   timer t_wait := 0.2;
 
@@ -4462,11 +4432,7 @@
 testcase tc_EPTF_Var_SubscribeTest_pull_noAlt_with_adjustContent_negative() runs on VariableTest_CT{
   f_EPTF_Var_init_CT("SubscribeTest_pull_noAlt_with_adjustContent_negative");
   f_EPTF_Var_setMaxWaitTime(0.2)
-  var charstring vl_expected_warning := "*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*";
-  v_charstringVar := vl_expected_warning;
-  f_EPTF_Logging_registerPreambleFn(refers(f_EPTF_Var_Test_adjustTest_checkExpectedWarning_preamble_FT));
-  f_EPTF_Base_registerCleanup(refers(f_EPTF_Var_Test_adjustTest_checkWarning_cleanup));
-  v_boolVar := false;
+  f_EPTF_Logging_setExpectedWarningMsg("*Cannot convert direct content { floatVal := 1.000000 } to direct content { direct := { intVal := 0 } }. Types are incompatible*");
 
   timer t_wait := 0.2;